본문 바로가기

연습18

[구현] 럭키 스트레이트 문제 : https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net N이 항상 짝수 자릿수로만 주어진다는 전제가 있어서, 홀수일 때를 고려하지 않아도 되서 편했다. 나는 단순하게 왼쪽, 오른쪽 각각 더해서 같은지 비교했다. s = input() half = len(s) // 2 left = 0 right = 0 for i in range(0, half): left += int(s[i]) for i in range(half, len(s)): right += int(s[i]) if left == right: .. 2021. 11. 14.
[구현] 게임 개발 N x M 크기의 2차원 배열에서 규칙에 따라 캐릭터를 이동시키고, 캐릭터가 방문한 칸의 수를 출력한다(3 2021. 11. 8.
[구현] 왕실의 나이트 나이트 위치를 입력을 받았을 때 이동할 수 있는 경우의 수를 출력해보자. def convert(alphabet): if alphabet == 'a': return 1 if alphabet == 'b': return 2 if alphabet == 'c': return 3 if alphabet == 'd': return 4 if alphabet == 'e': return 5 if alphabet == 'f': return 6 if alphabet == 'g': return 7 if alphabet == 'h': return 8 s = input() x = convert(s[0]) y = int(s[1]) dx = [-2, -2, 2, 2, -1, -1, 1, 1] dy = [1, -1, 1, -1, 2, -.. 2021. 10. 31.
[그리디] 숫자 카드 게임 2차원 배열에 숫자들이 있다. n,m 을 입력받고 행렬을 만든다. 각 행마다 가장 작은 수들을 고르지만 최종적으로는 가장 큰 수를 출력해야 된다. 아래 예시1을 보면 1행에서는 1, 2행에서는 1, 3행에서는 2가 되서 정답은 2가 된다. [예시] 3 3 3 1 2 4 1 4 2 2 2 다 입력받은 후 작업하는게 아니라 행 하나 입력받을 때마다 min, max 작업을 수행한다. 행 안에서 최소값을 찾은 후에 최대값을 확인해서 계속 갱신해나가는 일반적인 작업이다. n, m = map(int, input().split()) result = 0 for i in range(n): data = list(map(int, input().split())) minValue = min(data) result = max(r.. 2021. 10. 24.
[그리디] 무지의 먹방 라이브 링크 : https://programmers.co.kr/learn/courses/30/lessons/42891 코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr 만약 food_times 가 [3, 1, 2] 이고 k가 6라고 했을 때, 한번 순회하면 k는 3이 되고 [2, 0, 1] 이 된다. 다시 한번 순회한다고 했을 때 가운데 0은 건너 뛰게 되고 [1,0,0] 이 된다. 그러므로 배열 형태를 똑같이 유지한채 for문을 돌 필요가 없다. 오름차순으로 정렬해서 낮은 시간(음식 다 먹는데 적게 걸리는)부터 처리하면 된다. 책에서는 우선순위 큐를 활용한다. 그리고 무지가 먹방을 진행하다 food_times 값들이 모두 0이 됐는데 k 값이 남게 되면 -1을 리턴해야 된다. 하지만 꼭 .. 2021. 10. 17.
[그리디] 볼링공 고르기 A, B 두 사람이 볼링을 치고 있다. 볼링공은 총 N개 있고 볼링공의 무게는 각각 다르며 1부터 M까지의 자연수 형태로 무게가 존재한다.(1 2021. 10. 11.