강의
"힙"은 최대 / 최소 원소를 빠르게 찾을 수 있는 알고리즘 입니다.
힙은 완전 이진 트리 자료구조를 통해 구현합니다.
- 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
⭐ 힌트 풀이 :
'데브코스 TIL > 자료구조, 알고리즘' 카테고리의 다른 글
Step 7: 깊이/너비 우선 탐색(DFS/BFS) 대표 문제 풀이: 여행경로 (0) | 2023.10.20 |
---|---|
Step 6: 동적계획법(Dynamic Programming) 대표 문제 풀이: N으로 표현 (0) | 2023.10.20 |
Step 4: 탐욕법(Greedy) 대표 문제 풀이: 큰 수 만들기 (0) | 2023.10.19 |
Step 2: 탐욕법(Greedy) 대표 문제 풀이: 체육복 (0) | 2023.10.19 |
Step 3: 정렬(Sort) 대표 문제 풀이: 가장 큰 수 (0) | 2023.10.19 |