from collections import deque
q = deque([])
q.append(2)
q.popleft()
form queue import PriorityQueue
q = PriorityQueue(maxsize = 10)
maxsize를 지정하지 않으면 크기는 무한대가 된다.q.put(5)
q.put(3)
print(q.get()) # 3
print(q.get()) # 5
put으로 push연산을, get으로 pop연산을 수행한다.q.put((-5, 5))
q.put((-3, 3))
print(q.get()[1]) # 5
print(q.get()[1]) # 3
https://www.acmicpc.net/problem/1715

import sys
from queue import PriorityQueue
input = sys.stdin.readline
n = int(input())
q = PriorityQueue()
for _ in range(n):
q.put(int(input()))
result = 0
if n != 1:
while not q.empty():
q1 = q.get()
q2 = q.get()
s = q1 + q2
result += (s)
if q.empty():
break
q.put(s)
print(result)
https://www.acmicpc.net/problem/11000

import sys
import heapq
input = sys.stdin.readline
q = []
room = []
n = int(input())
for _ in range(n):
heapq.heappush(q, (list(map(int, input().split())))) # 시작 시간, 끝 시간
heapq.heappush(room, heapq.heappop(q)[1])
for i in range(1, n):
v = heapq.heappop(q)
if room[0] <= v[0]:
heapq.heappop(room)
heapq.heappush(room, v[1])
else:
heapq.heappush(room, v[1])
print(len(room))
각 강의실 별로 강의가 끝나는 시간이 담겨있다.