최소힙을 활용하는 문제인데, 최소힙 & 최대힙에 대한 개념은 알고 있지만 직접 구현하기에는 너무 까다롭다고 느껴졌습니다.
따라서 Pythonic하게 heapq(내장함수)를 활용 했습니다.
알고리즘 상에서 딱히 크게 문제될 부분은 없었습니다.
그나마 주의할 점이라고는 힙이 비어있을 때 0이라는 값을 입력받았다면 0을 출력해야하는 것입니다.
import sys
import heapq
N = int(input())
q = []
output = ''
for i in range(N):
x = int(sys.stdin.readline().strip())
if x == 0:
if len(q):
var = heapq.heappop(q)
output += f'{var}\n'
else:
output += '0\n'
else:
heapq.heappush(q, x)
print(output)