algorithm/python

프로그래머스/힙/더 맵게

아르르르를를르 2020. 3. 7. 19:38

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

솔직히 파이썬 아니고 heapq 구현하라고 했으면 못 풀었을 것 같다.

python 내장 모듈 heapq는 min heap 이고 scoville[0]은 항상 최소값이다.

level2

 

import heapq

def solution(scoville, K):
    answer = 0

    heapq.heapify(scoville)
    while scoville[0] < K:
        if len(scoville) < 2: 
            return -1 
        one = heapq.heappop(scoville) # logN
        two = heapq.heappop(scoville)
        heapq.heappush(scoville,one+two*2)
        answer+=1
        
    if scoville[-1] < K:
        return -1

    return answer