본문 바로가기

라이브러리

파이썬(Python) heapq 사용법 정리

Python의 heapq 모듈은 힙 자료 구조를 구현하는 데 사용됩니다. 이 모듈은 우선순위 큐를 구현하는 데 유용하며, heapq 모듈의 함수들은 리스트를 인수로 받고 해당 리스트를 힙으로 변환합니다.

다음은 heapq 모듈에서 사용할 수 있는 일부 함수와 이 함수들을 사용하는 방법입니다.


1. heappush(heap, item)

heap에 item을 추가합니다.

import heapq

heap = []
heapq.heappush(heap, 4)
heapq.heappush(heap, 1)
heapq.heappush(heap, 7)
print(heap) # [1, 4, 7]


2. heappop(heap)

heap에서 최소값을 제거하고 반환합니다.

import heapq

heap = [1, 4, 7]
print(heapq.heappop(heap)) # 1
print(heap) # [4, 7]
출력:


3. heapify(x)

리스트 x를 힙으로 변환합니다.

import heapq

lst = [3, 1, 7, 4]
heapq.heapify(lst)
print(lst) # [1, 3, 7, 4]


4. heapreplace(heap, item)

heap에서 최소값을 제거하고 item을 추가합니다.

import heapq

heap = [1, 4, 7]
print(heapq.heapreplace(heap, 2)) # 1
print(heap) # [2, 4, 7]


5. nlargest(n, iterable, key=None)

iterable에서 n개의 가장 큰 값을 반환합니다.

import heapq

lst = [3, 1, 7, 4]
print(heapq.nlargest(2, lst)) # [7, 4]


6. nsmallest(n, iterable, key=None)

iterable에서 n개의 가장 작은 값을 반환합니다.

import heapq

lst = [3, 1, 7, 4]
print(heapq.nsmallest(2, lst)) # [1, 3]

힙은 주로 우선순위 큐를 구현하는 데 사용됩니다. 따라서 heapq 모듈은 많은 알고리즘에서 유용하게 사용됩니다. heapq 모듈의 함수를 사용하여 힙 자료 구조를 효율적으로 구현할 수 있습니다.