반응형
level 2 힙
문제 : https://programmers.co.kr/learn/courses/30/lessons/42626?language=python3
import heapq
def solution(scoville, K):
answer = 0
q = []
for i in scoville:
heapq.heappush(q,i)
while len(q) > 1:
if q[0] >= K:
break
food1, food2 = heapq.heappop(q), heapq.heappop(q)
scoville = food1 + food2*2
heapq.heappush(q,scoville)
answer += 1
if q[0] < K:
answer = -1
return answer
heap의 크기가 1이면 스코빌 지수 계산을 못하므로 종료를 시킵니다.
heap을 사용해서 맨 앞의 최소값만 가져와서 어렵지 않게 문제를 해결했습니다.
다음부터는 import heapq as hq를 사용해서 간소하게 hq를 사용하겠습니다.
반응형
'ProblemSolving > Heap' 카테고리의 다른 글
최단 경로 구하기 - 다익스트라(Dijkstra) (파이썬) (0) | 2022.05.11 |
---|