Home

[프로그래머스] 땅따먹기 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12913 2. 풀이 dp 를 이용해서 문제를 해결합니다. 현재 위치로 올 수 있는 경로까지의 값 중에서 가장 큰 값과 현재의 값을 더하는 식을 반복합니다. def solution(land): dp = [[0]*4 for i in range(len(land))] for i, x in enumerate(land[0]): dp[0][i] = land[0][i] for i in range(1, len(land)): dp[i][0] = max(dp[i -...

Read more

[프로그래머스] 야근 지수 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12927 2. 풀이 힙을 사용해서 제일 큰 숫자부터 1씩 빼주는 작업을 수행합니다. 가장 큰 수가 1씩 감소하는 것이 다른 수가 1씩 감소하는 것보다 훨씬 더 값을 줄일 수 있습니다. import heapq def solution(n, works): heap = [] for x in works: heapq.heappush(heap, -x) for i in range(n): bigger = -heapq.heappop(heap) ...

Read more

[프로그래머스] 입국심사 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/68935 2. 풀이 처음에 이 문제를 어떻게 풀어야 될지 매우 난감해서 다른 분들의 풀이를 참조하였습니다. 이진 탐색을 이용하면 쉽게 풀 수 있는 문제였습니다. 이진 탐색을 이용하여 최대 가능한 시간(최소검색시간을 가진 검색원의 검색 시간 * 사람수)과 0초를 기준으로 가능한 시간을 줄여갑니다. 각 탐색마다 middle 값의 시간동안 각 검색원들이 가능한 검색가능한 사람 수를 모두 더한 후 비교합니다. 가능하면 답으로 갱신, 가능하지 않으면 넘어가는 과정을 반복합니다....

Read more

[프로그래머스] 3진법 뒤집기 문제풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/68935 2. 풀이 3으로 원래 숫자가 1보다 클 동안 나머지 연산을 계속해서 수행하면 3진수의 역수를 구할 수 있다. 이 수를 10진수로 변경하면 정답 2.1. python def solution(n): answer = '' while n >= 1: n, residue = divmod(n, 3) answer += str(residue) answer = int(answer, 3) return answer 2.2. c++ ...

Read more