[programmers] 더 맵게

KwonSC·2022년 5월 10일
0

programmers - Python

목록 보기
9/23
post-thumbnail

https://programmers.co.kr/learn/courses/30/lessons/42626


Code

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    

Solution

scovilleheapify()를 통해 힙화 시킨후 while문을 돌려 first, second를 빼서 다음 음식을 만들고 넣는 방식을 반복하면서 answer를 증가시킨다. 만약 음식의 수가 1개 이하가 되거나 첫번째 음식의 스코빌 지수가 K 이상이되면 break를 시킨다. 그리고 마지막에는 첫번째 음식의 스코빌 지수가 K 미만이면 -1, 이상이면 answer를 리턴시킨다.

0개의 댓글