데브코스 TIL/자료구조, 알고리즘
Step 5: 힙(Heap) 대표 문제 풀이: 더 맵게
예니ㅣ
2023. 10. 20. 14:37
강의
"힙"은 최대 / 최소 원소를 빠르게 찾을 수 있는 알고리즘 입니다.
힙은 완전 이진 트리 자료구조를 통해 구현합니다.
- max heap
- min heap
연산
- heapify : 힙 구성. O(N log N)
- insert : 삽입. O(log N)
- remove : 삭제. O(log N)
import heapq
heapq.heapify(L)
heap.heappush(L, x)
min = heapq.heappop(L)
응용
- 정렬 (heapsort)
- 우선 순위 큐 (priority queue)
Step 5-3: 풀어서 내 것으로 만들자! 더 맵게
⭐ heapq 라이브러리를 이용하여 푸는 문제!
import heapq
def solution(scoville, k):
heapq.heapify(scoville)
cnt = 0
while scoville[0] < k:
if len(scoville) < 2:
cnt = -1
break
cnt += 1
new = heapq.heappop(scoville) + heapq.heappop(scoville)*2
heapq.heappush(scoville, new)
return cnt
⭐ 힌트 풀이 :