프로그래머스 - 힙(Heap)
# 더 맵게 (Level2)
- Point. 파이썬 heapq 모듈 사용하기 -> 안하면 효율성 ㄴㄴ
- 최댓값, 최소값을 뽑을 때는 heap을 사용하라
- 시도 1) if문 없이 짜면 heap 갯수가 1개 일때 오류가 뜬다
- 시도 2) if answer == len(scoville)-1 : 로 할 경우 맨 마지막 원소가 K보다 클 경우를 확인하지 못하고 -1 return
import heapq
def solution(scoville, K):
answer = 0
heap = []
for i in scoville:
heapq.heappush(heap, i)
while heap[0] < K:
if len(heap) >=2 : heap_min1 = heapq.heappop(heap)
if len(heap) >=1 : heap_min2 = heapq.heappop(heap)
heapq.heappush(heap, heap_min1 + (heap_min2*2))
answer += 1
if answer == len(scoville):
return -1
return answer
반응형
'알고리즘 > programmers' 카테고리의 다른 글
20210407_코테공부 (0) | 2021.04.07 |
---|---|
[ 프로그래머스 / 파이썬 ] 주식가격 (0) | 2021.03.31 |
20210316_코테공부 (0) | 2021.03.16 |
20210315_코테공부 (0) | 2021.03.15 |
20210312_코테공부 (0) | 2021.03.12 |