https://programmers.co.kr/learn/courses/30/lessons/42626
import heapq
def solution(scoville, K):
answer = 0
heapq.heapify(scoville)
while(scoville[0] < K):
if (len(scoville) < 2):
break
first = heapq.heappop(scoville)
second = heapq.heappop(scoville)
heapq.heappush(scoville, first + (second * 2))
answer += 1
if (scoville[0] < K):
return -1
else:
return answer
scoville
을 heapify()
를 통해 힙화 시킨후 while문을 돌려 first, second를 빼서 다음 음식을 만들고 넣는 방식을 반복하면서 answer
를 증가시킨다. 만약 음식의 수가 1개 이하가 되거나 첫번째 음식의 스코빌 지수가 K
이상이되면 break를 시킨다. 그리고 마지막에는 첫번째 음식의 스코빌 지수가 K
미만이면 -1, 이상이면 answer
를 리턴시킨다.