import sys
import heapq
input = sys.stdin.readline;
heap = []
N = int(input())
for _ in range(N):
num = int(input())
if num == 0:
if heap:
print(heapq.heappop(heap))
else:
print("0")
else:
heapq.heappush(heap, num)
import sys
import heapq
input = sys.stdin.readline;
heap = []
N = int(input())
for _ in range(N):
num = int(input())
if num == 0:
if heap:
print(heapq.heappop(heap)[1])
else:
print("0")
else:
heapq.heappush(heap,(-num, num))
heapq는 최소힙 기능만을 제공한다.
따라서 힙에 튜플을 추가했을때 첫번째 원소를 기준으로 최소힙이 생성되는 것을 이용하여 문제를 풀었다.
heapq.heappush(heap,(-num, num))
값을 출력할 때에는 원래 값인 두번째 원소가 필요한 것이므로 다음과 같이 출력한다.
print(heapq.heappop(heap)[1])