본문 바로가기
Python/알고리즘문제

[프로그래머스][힙(heap)] 더 맵게

by 붕어사랑 티스토리 2021. 3. 25.
반응형

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
반응형

댓글