오늘의 인기 글
최근 글
최근 댓글
Today
Total
11-08 00:42
관리 메뉴

우노

[Python] 우선순위큐(heapq) 사용법 본문

Language/Python

[Python] 우선순위큐(heapq) 사용법

운호(Noah) 2022. 7. 2. 18:22

들어가기 앞서

  • heapq 모듈은 이진 트리(binary tree) 기반의 최소 힙(min heap) 자료구조를 제공합니다.
    • 통상적으로 heapq 가 PriorityQueue 보다 더 빠릅니다.
  • 해당 포스팅에선, heap 사용법에 대해서만 간단히 다뤄보겠습니다.
  • heapq 에 튜플이 삽입될 경우엔, 튜플의 첫 번째 요소가 정렬의 기준이 됩니다.

예제 코드

import heapq

# 기본 배열 생성
q = []

# 우선순위 큐에 요소 삽입
heapq.heappush(q, (4, 10))
heapq.heappush(q, (1, 10))
heapq.heappush(q, (3, 10))
heapq.heappush(q, (2, 10))
print(q)  # [(1, 10), (2, 10), (3, 10), (4, 10)]

# 우선순위 큐의 요소 제거
heapq.heappop(q)
print(q) # [(2, 10), (4, 10), (3, 10)]
Comments