[프로그래머스-Heap] 더 맵게

CHOI YUN HO·2021년 4월 15일
0

알고리즘 문제풀이

목록 보기
26/63

📃 문제 설명

프린터

[문제 출처 : 프로그래머스]

👨‍💻 해결 방법

문제 자체는 어렵지 않았다.
그냥 리스트에서 작은 값 두 개를 꺼내서 계산만 해주면 되는데,

이 때 그냥 리스트를 오름차순 정렬하여 순서대로 꺼내어 계산하는 방식으로 풀었더니, 효율성 테스트를 통과할 수 없었다.
그래서 heqpq를 import하여 min heap을 사용했다.

파이썬에서 heapq를 사용하는 방법에 대해 익힐 수 있는 문제였다. 굿

👨‍💻 소스 코드

import heapq

def solution(scoville, K):
    answer = 0
    hq = []

    for s in scoville:
        heapq.heappush(hq, s)

    while hq[0] < K:
        try:
            heapq.heappush(hq, heapq.heappop(hq) + (heapq.heappop(hq) * 2))
        except IndexError:
            return -1
        answer += 1

    return answer
profile
가재같은 사람

0개의 댓글