[프로그래머스] 더 맵게

지수 🤓·2020년 2월 21일
0

알고리즘

목록 보기
12/15

링크
python의 heapq 라이브러리를 이용해서 아주 아주 간단하게 풀었다.
최소힙을 구현해 놓은 것으로 자동으로 계속 정렬을 해준다.

heapq 리스트에서 첫 번째와 두 번째 값을 꺼내서 계산 한 다음, 다시 리스트에 넣어주면 된다.

while문이 멈추는 때는 heapq의 처음 값이 K랑 같거나 클 때이다.

def solution(scoville, K):
    answer = 0
    # 기존 list를 heapq로 바꾸는 방법
    heapq.heapify(scoville)
    while scoville[0] < K:
        if len(scoville) < 2:
            return -1
        answer += 1
        min1 = heapq.heappop(scoville)
        min2 = heapq.heappop(scoville)
        num = min1+min2*2
        heapq.heappush(scoville, num)
    return answer
profile
Backend Junior Developer

0개의 댓글