문제
가장 작은 수와 그 다음 작은 수를 스코빌 계산하여 이를 모든 수가 k값을 넘을 때까지 반복하여야 한다.
다만 처음 풀었을 땐 리스트에서 min값 두개 빼와서 사용하였더니 효율성 검사를 통과하지 못하였다.
힙을 사용하여 문제를 풀었더니 해결!
import heapq
def solution(scoville, k):
heap = []
for x in scoville:
heapq.heappush(heap, x)
answer = 0
while heap[0] < k:
try:
heapq.heappush(heap, heapq.heappop(heap) + (heapq.heappop(heap)*2))
answer+=1
except:
return -1
return answer