[プログラマー42626]もう少し辛い
3434 ワード
🥚質問する
https://programmers.co.kr/learn/courses/30/lessons/43164
🥚入力/出力
🍳コード#コード# import heapq
def solution(scoville, K):
answer = 0
heapq.heapify(scoville)
while scoville[0] < K:
# 모든 음식의 스코빌 지수를 K이상으로 만들 수 없음 = 더이상 섞을 것이 없음
if len(scoville) < 2:
return -1
mix = heapq.heappop(scoville) + heapq.heappop(scoville)*2
heapq.heappush(scoville, mix)
answer += 1
return answer
🧂アイデア
ヒップホップ
import heapq
def solution(scoville, K):
answer = 0
heapq.heapify(scoville)
while scoville[0] < K:
# 모든 음식의 스코빌 지수를 K이상으로 만들 수 없음 = 더이상 섞을 것이 없음
if len(scoville) < 2:
return -1
mix = heapq.heappop(scoville) + heapq.heappop(scoville)*2
heapq.heappush(scoville, mix)
answer += 1
return answer
🧂アイデア
ヒップホップ
hipは、すべての親ノードがサブノード以下であるバイナリツリーです.
(出典:https://docs.python.org/ko/3/library/heapq.html)
heapqは,受信したパラメータ配列scovilleをhipに変換する.heapify関数を使用しました.
最も辛くない食べ物のスコヴェル指数がK以上になるまで食べ物をかき混ぜるために、最小のモダンスコヴェル最小の項目
scoville[0] < K
であるかどうかをチェックし、while loopを実行します.このとき,再混合可能な食べ物がなく,スコビル指数がKに達しなかった場合,−1を返す.
問題の式
섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)
は、以下のコードで実現される.mix = heapq.heappop(scoville) + heapq.heappop(scoville)*2
heapq.heappush(scoville, mix)
最も辛くない食べ物のスコヴェル指数がK以上になれば、食べ物を混ぜた回数を答えることができる.
Reference
この問題について([プログラマー42626]もう少し辛い), 我々は、より多くの情報をここで見つけました https://velog.io/@eastgloss0330/프로그래머스-42626-더-맵게テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol