반응형

파이썬에서는 우선순위 큐가 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
반응형