import heapq, sys
input = sys.stdin.readline
T = int(input())
heap = []
for _ in range(T):
a = int(input())
if a > 0:
heapq.heappush(heap,a)
elif a == 0 and heap:
minv = heapq.heappop(heap)
print(minv)
elif a == 0 and not heap:
print(0)
풀이
heapq와 sys를 충분히 다룰 수 있다면 쉬운 문제였다.
T로 큰 수를 받을 수 있기 때문에 sys 라이브러리로 값들을 빠르게 읽을 수 있도록 처리했고, heap은 항상 최솟값을 출력한다는 특성을 활용했다. 만약 최대값을 구해야한다면, heap에 저장할 때 음수로 변환 후 저장하고, 출력할 때 다시 -1을 곱해 출력하면 된다.