반응형
파이썬에서는 우선순위 큐가 priority queue가 아닌 heapq를 이용하여야 한다.
import heapq를 해준 후
hq 리스트를 하나 만들어주고 heapq.heappush(hq, 값)을 해주면 된다.
이때 2가지 이상의 값을 넣어야하는 것이라면 튜플을 이용해서 구성해주면 된다.
아래 코드는 2가지 값을 heapq에 담았지만 (v1, v2, v3, ... )로 계속 담아낼 수 있다.
import heapq
from random import random
hq = []
for i in range(0, 10):
rand1 = int(random() * 10)
rand2 = int(random() * 10)
heapq.heappush(hq, (rand1, rand2))
print("그냥 heap queue 배열을 출력할 때")
print(hq)
print("heap queue를 순차적으로 pop할 때")
while hq:
print(heapq.heappop(hq))
C:\Users\kkw\PycharmProjects\untitled1\venv\Scripts\python.exe C:/Users/kkw/PycharmProjects/untitled1/main.py
그냥 heap queue 배열을 출력할 때
[(1, 0), (2, 1), (2, 8), (4, 7), (2, 9), (8, 1), (8, 3), (9, 5), (7, 5), (8, 6)]
heap queue를 순차적으로 pop할 때
(1, 0)
(2, 1)
(2, 8)
(2, 9)
(4, 7)
(7, 5)
(8, 1)
(8, 3)
(8, 6)
(9, 5)
Process finished with exit code 0
반응형
'Basic > Python' 카테고리의 다른 글
[openpyxl] 1. 파이썬을 이용한 엑셀 파일 및 워크시트 생성 (0) | 2021.10.18 |
---|---|
Python 간단한 진법 변환기 (0) | 2020.10.14 |
Python 다익스트라, BFS, Greedy를 이용한 최단 경로 (4) | 2020.09.08 |
pygame으로 벽돌깨기 만들기 (1) | 2020.09.01 |
파이썬 파일 입출력을 통한 구구단 만들기 (0) | 2020.08.11 |