: 우선순위의 개념을 큐에 도입
→ 우선순위가 높은 데이터가 먼저 나감
: 우선순위 큐를 위해 만들어진 자료구조
: 부모 노드의 키 ≥ 자식 노드의 키
: 부모 노드의 키 ≤ 자식 노드의 키
힙 생성 & 원소 추가, 삭제
import heapq
heap = []
heapq.heappush(heap, 50)
heapq.heappush(heap, 10)
heapq.heappush(heap, 20)
=> [10, 50, 20]
heapq.heappop(heap)
=> [20, 50]
heap_items = [1, 3, 5, 7, 9]
max_heap = []
for item in heap_item:
heapq.heappush(max_heap, (-item, itemm))
=> [(-9, 9), (-7, 7), (-3, 3), (-1, 1), (-5, 5)]