큐의 기본개념에서 각 원소마다 우선순위가 추가되어, 원소들의 우선순위가 높은 것부터 Dequeue를 진행하는 자료구조다.
힙(heap)이란 원래 완전이진트리(complete binary tree)를 기본으로 한 자료구조다.
heapq모듈은 내장 모듈이며, import하여 사용할 수 있다.
import heapq
파이썬에서 최소 힙 생성은 따로 없으며, 그냥 List를 생성하여 이를 활용하면 된다.
heap = []
최소 힙 정렬을 유지하면서 원소를 추가할 수 있다.
최소 힙에서는 가장 작은 값이 정렬 맨 앞에(트리 맨 위에) 올라오는데, 최소 힙 정렬을 유지하면서 원소를 삭제할 수 있다. 즉, 정렬 맨 앞의(트리 맨 위의) 값이 삭제 되면서 트리가 재배치 된다.
아래 예시와 같이 heapify() 함수를 활용하면 기존의 List도 최소 힙 정렬을 유지하는 힙(리스트)로 만들 수 있다.
list = [4, 1, 7, 3, 8, 5]
heapq.heapify(list)
print(list)
출력값
>>> [1, 3, 5, 4, 8, 7]
파이썬 Heapq에 대해 잘 정리해 둔 Link : https://www.daleseo.com/python-heapq/
힙?-_- 헤헤 내사랑 화이팅