Programming/Python

[프로그래머스] 더 맵게

왕밤빵도라에몽 2025. 4. 2. 11:39
728x90

기본 아이디어

  • 힙큐
  • 하라는대로 구현
import heapq

def solution(scoville, K):
    heapq.heapify(scoville)
    count = 0
    while scoville:
        first = heapq.heappop(scoville)
        if first >= K:
            break
        if len(scoville) == 0:
            return -1
        new = first + heapq.heappop(scoville) * 2
        heapq.heappush(scoville, new)
        count += 1

    return count
  • heapq.heapify는 리스트를 힙으로 바꿔서 반환하는 것이 아니라, 리스트 자체를 힙으로 정렬함. (그니까 반환값 None)
  • 중간에 scville을 모두 K 이상으로 만들 수 없는 경우를 예외처리 해줘야 함.
728x90