ㅁㄴㅇㄻㄴㅇㄹ

[코딩테스트] 프로그래머스 더 맵게 with Python 본문

코딩테스트

[코딩테스트] 프로그래머스 더 맵게 with Python

hanbin8269 2021. 5. 12. 13:45

문제 풀이 코드

import heapq

def solution(scoville, K):
    answer = 0
    heapq.heapify(scoville)  #1 
    while True:
        answer += 1
        heapq.heappush(scoville,heapq.heappop(scoville) + heapq.heappop(scoville) * 2)  #2
        if scoville[0] >= K:  #3
            return answer
        elif len(scoville) <= 1:
            return -1

#1

기존 scoville배열을 heap 자료구조로 변경시킴 (O(N))

#2

맨 앞 + (앞에서 두번째 X 2) 를 heap queue에 다시 집어넣음

#3

만약 가장 작은 인자가 K보다 크다면 섞은 횟수 반환