선발대

[스파르타] 99클럽 2기 코테스터디 5일차 TIL / 더 맵게 본문

스파르타코딩클럽/활동 내용

[스파르타] 99클럽 2기 코테스터디 5일차 TIL / 더 맵게

신선한 스타트 2024. 5. 24. 23:56

프로그래머스: 더 맵게 (링크)

더 맵게

 

라이브러리 heapq를 사용했다.

heapq.heapify(): 주어진 리스트를 힙으로 변경한다.

heapq.heappop(): 가장 최소의 수를 뽑는다.

heapq.heappush(): 힙에 다시 수를 넣는다

 

heapq.heapify()를 사용하게 되면 작은 순서부터 자동으로 정렬된다. 그러면 문제에서 주어진 조건대로 heapq.heappop()을 이용하여 가장 작은 수를 하나씩 뽑은 후 계산한 후 다시 heapq.push()로 넣고 cnt + 1를 한다. 가장 최소의 값이 K 이하가 될 때까지 계속 while문을 돌린다.

 

import heapq

def solution(scoville, K):
    
    heapq.heapify(scoville)
    min_sum = 0
    cnt = 0
    
    while scoville[0] < K:
        try:
            min1 = heapq.heappop(scoville)
            min2 = heapq.heappop(scoville)
            heapq.heappush(scoville, min1 + min2*2)
            cnt += 1
        except:
            return -1
    return cnt

 

오늘 미들러 풀이 끝!

Comments