×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 2,238,571명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)
반응형

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