본문 바로가기

코딩테스트

[프로그래머스(Programmers)/Level2](Python) 라면 공장

<내코드>

<풀이과정>

stock이 버틸수 있는 dates중 (stock-dates[i]>=0)가장 큰 dates의 순번에 해당하는 supplies[i]를 찾기위해

반복하며 힙큐에 넣어주고, 더이상 stock이 버틸 수 없으면 제일큰 공급량을 stock에 더해준다.(힙큐에서 pop으로)

이 과정을 k가 stock보다 클 때 까지 반복하면 최소의 공급량을 return하게 된다.

 

<느낀점>

처음에 힙큐의 원소를 꺼내서 stock에 더해주는 과정해서 한번 시행하면 heapq를 리셋시켜줘서 답이 안나왔다.

생각을 잘 못했던것 같다.(이왕 공급을 받을거면 무조건 제일 많은량을 받는게 맞다->힙을 초기화시키면 큰 값이 사라지는 경우가 있다 라는 생각을 간과했다.) 이런식의 풀이를 생각해내는게 상당히 까다로웠고 다시한번 heapq를 배울수 있었다.