import heapq, sys
input = sys.stdin.readline
k = int(input())
h = []
heapq.heapify(h)
for _ in range(k):
num = int(input())
if num == 0 and not h:
print(0)
elif num == 0 and h:
heapq.heappush(h,-num)
a = -heapq.heappop(h)
print(a)
else:
heapq.heappush(h,-num)
풀이
입력량이 많기 때문에 sys로 데이터를 한번에 읽어올 수 있도록 처리했고,
heapq는 최소값을 출력하는데 이 문제에서는 최대값을 출력해야해서 값을 입력할 때 아예 음수로 변경해서 저장한 뒤, 최소값을 출력하도록 했다.
그러면 [1,2,3,4,5]에서 원래는 1이 뽑혔다면, [-1,-2,-3,-4,-5]에서는 -5가 뽑히고, 이 값을 원래 부호로 바꾸면 최댓값이 된다는 원리를 사용했다.