プログラマーコードテスト高得点Kit Hipより辛い


質問の表示 👈 クリック!

💡 に答える


解✔方法


Pythonのheapqモジュールを用いて最小hipを実現した.
入力したscovilleをsortし、インデックス0の位置に最大値を付けます.
最も辛くない食べ物popとkを比較します.
kより小さい場合は、2回目に辛くない食べ物をポップアップし、最も辛くない食べ物と混合して添加し、混合回数を計算する.
このとき、最も辛くない食べ物が最後の食べ物である場合は、-1に戻って終了します.
kより大きい場合は、ブレンドの回数を返して終了します.
インプリメンテーションコード👇
#섞은 횟수 return
#heapq모듈로 최소힙 구현

import heapq

def solution(scoville, K):
    answer = 0 
    scoville.sort() #최소힙에서는 가장 작은 값이 인덱스0에 위치해야한다.
    while 1:
        first = heapq.heappop(scoville) #가장 안 매운 음식
        if first < K:
            if not scoville: #마지막 음식이 k보다 작을 경우
                return -1
            second = heapq.heappop(scoville) #두번째로 안 매운 음식
            heapq.heappush(scoville, first + second*2)
            answer += 1 #섞은 횟수 카운트
        else:
            return answer