Python/알고리즘문제
[프로그래머스][힙(heap)] 더 맵게
붕어사랑 티스토리
2021. 3. 25. 15:07
반응형
programmers.co.kr/learn/courses/30/lessons/42626
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
해설
시키는대로 heap을 이용해 풀면 된다.
한번 스코빌 지수를 계산할때마다 전체 원소의 수가 하나씩 줄어드는데
이때 heap의 사이즈가 0이 되면 바로 return -1을 해주면 된다.
import heapq
def solution(scoville, K):
answer = 0
q = []
for i in scoville:
heapq.heappush(q,i)
while q[0]<K:
first = heapq.heappop(q)
if not q:
return -1
second = heapq.heappop(q)
heapq.heappush(q,first+second*2)
answer+=1
return answer
반응형