그 동안 우선순위 큐 문제를 만날 때마다 힙으로 구현했다.
그런데 파이썬에 우선순위큐를 패키지도 있다는 사실을 발견했다 !!! 🤡
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: 큐의 길이
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으로 구현하는 것이 좋겠다