문제
- 프로그래머스 : 코딩테스트 연습 - 힙(Heap) - 라면공장
풀이
레벨2 치고는 굉장히 어려웠고 3시간 정도 걸린 것 같다. 힙을 안쓰고 풀다가 너무 코드가 길어져서 처음부터 다시 생각하다보니 시간이 길게 소요됐다.
공급 가능한 날짜를 힙에 넣어주고 그 다음번 탐색에서는 넣은 대상을 찾지 않게 하는 방법에 대한 아이디어가 떠오르지 않아서 1시간 정도 걸린 것 같다.
import heapq
def solution(stock, dates, supplies, k):
answer = 0
idx = 0
heap = []
while stock < k:
for i in range(idx, len(dates)):
if dates[i] <= stock:
heapq.heappush(heap, -supplies[i])
idx += 1
else:
break
stock -= heapq.heappop(heap)
answer += 1
return answer