[Python] PriorityQueue

이정연·2023년 4월 24일
0

그 동안 우선순위 큐 문제를 만날 때마다 힙으로 구현했다.

그런데 파이썬에 우선순위큐를 패키지도 있다는 사실을 발견했다 !!! 🤡

사용법

from queue import PriorityQueue
q = PriorityQueue()
q.put(3)
q.put(1)
q.put(2)
q.put(4)

for _ in range(4):
	print(q.get())

1
2
3
4

메서드

q.empty()

True: 비어있음
False: 남아있음

q.size()

int: 큐의 길이

예제

백준 1715 카드 정렬하기

import sys
from queue import PriorityQueue
input = sys.stdin.readline

if __name__ == '__main__':
    answer = 0
    N = int(input())
    q = PriorityQueue()
    for _ in range(N):
        q.put(int(input()))
    while q.qsize() != 1:
        tmp = 0
        tmp += q.get()
        tmp += q.get()
        q.put(tmp)
        answer += tmp
    print(answer)

여담

list(q)

TypeError: 'PriorityQueue' object is not iterable

PriorityQueue는 iterable 속성이 없으므로 큐의 형태로 표현이 불가능하다 .... 😳

이러한 특성 때문에 그냥 heap으로 구현하는 것이 좋겠다

profile
0x68656C6C6F21

0개의 댓글