eapq
heapq 우선순위 큐
heapq 모듈은 보통의 리스트를 최소 힙처럼 다룰 수 있게 해준다.
빈 리스트를 생성한 다음, heapq 모듈의 함수를 호출할 때 마다 이 리스트를 인자로 넘겨야 한다.
파이썬에서는 heapq 모듈을 통해서 원소를 추가하거나 삭제한 리스트가 그냥 최소 힙이다.
힙에 원소 추가.
heapq.heappush(list,data)
import heapq
heap = []
heapq.heappush(heap, 10)
heapq.heappush(heap, 1)
heapq.heappush(heap, 5)
heapq.heappush(heap, 3)
print(heap)
# 결과
[1, 3, 5, 10]
힙에서 원소 삭제
heapq.heappop(list)
heapq.heappop(heap)
print(heap)
# 결과
[3, 10, 5]
기존 리스트를 힙으로 변환.
heapq.heapify(list)
arr = [4, 1, 7, 3, 8, 5]
heapq.heapify(arr)
print(arr)
# 결과
[1, 3, 5, 4, 8, 7]
최대 힙 (응용)
arr = [4, 1, 7, 3, 8, 5]
heap = []
for i in arr:
heapq.heappush(heap, (-i, i)) # 쌍으로 넣기.
# print(heap)
# [(-8, 8), (-7, 7), (-5, 5), (-1, 1), (-3, 3), (-4, 4)]
while heap:
print(heapq.heappop(heap)[1])
# 결과
8 7 5 4 3 1
Author And Source
이 문제에 관하여(eapq), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jinukix/python-heapq저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)