본문 바로가기

programmers 알고리즘/구현

42626번: 더 맵게 (힙)

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

 

코딩테스트 연습 - 더 맵게

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같

programmers.co.kr

import heapq


def solution(scoville, K):
    queue = []
    [heapq.heappush(queue, x) for x in scoville]

    cnt = 0
    while True:
        f = heapq.heappop(queue)
        s = heapq.heappop(queue)
        heapq.heappush(queue, f + (s * 2))
        cnt += 1

        if all(x > K for x in queue):
            break
        if len(queue) == 1:
            return -1

    return cnt


res = solution([1, 2, 3, 9, 10, 12], 7)
print(res)

'programmers 알고리즘 > 구현' 카테고리의 다른 글

42627번: 디스크컨트롤러 (힙)  (0) 2020.11.05
42587번: 프린터  (0) 2020.11.04
42583번: 다리를 지나는 트럭  (0) 2020.11.04
기능개발 (스택/큐)  (0) 2020.11.04
주식가격 (스택/큐)  (0) 2020.11.03