문제에서 힙을 써야한다고 힌트를 주고있다. 게다가 스코빌 올리는 공식도 알려주고 있기 때문에 주어진 조건과 힙만 잘 사용한다면 쉽게 풀 수 있다.(이렇게 적었지만 예외처리 안해서 삽질한 사람 저요...) 코드를 짧게 작성하고 싶어서 아래처럼 구현하였지만 가독성을 신경 쓴다면 수정해야 될 것 같다 😅
from heapq import heapify, heappush, heappop
def solution(scoville, K):
answer = 0
heapify(scoville)
while scoville[0] < K:
if len(scoville) <= 2 and (scoville[0]+scoville[1]*2) < K:
return -1
heappush(scoville, heappop(scoville)+(heappop(scoville)*2))
answer += 1
return answer