프린터
문제 자체는 어렵지 않았다.
그냥 리스트에서 작은 값 두 개를 꺼내서 계산만 해주면 되는데,이 때 그냥 리스트를 오름차순 정렬하여 순서대로 꺼내어 계산하는 방식으로 풀었더니, 효율성 테스트를 통과할 수 없었다.
그래서 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