"""
출처:프로그래머스,
https://school.programmers.co.kr/learn/courses/30/lessons/42626
"""
# 풀이 과정
def solution(scoville, K):
import heapq
t = scoville
heap = []
result = 0
# for문 len(t) 개수만큼이라 t.sort()로 한 후 시작한거랑 동일!
while t:
a = t.pop()
heapq.heappush(heap, a)
while heap:
a = heapq.heappop(heap)
if a < K:
if len(heap) > 0:
result += 1
b = heapq.heappop(heap)
count = (a + b * 2)
heapq.heappush(heap, count)
else:
return -1 # 다 섞어도 k 못넘음
else:
break
return result