백준 - 11279번 문제에 대한 분석임.
import sys
import heapq
input = sys.stdin.readline
n = int(input())
answer = []
for _ in range(n):
t = int(input())
if t:
heapq.heappush(answer, -t) # push하는 요소에 음수를 취해줌
else:
if answer:
# 출력시 다시 한번 음수를 취해주면 최대값이 출력된다.
print(-heapq.heappop(answer))
else:
print(0)
heap-ordered list는 항상 오름차순으로 정렬이 되지만heap-ordered list에 넣는 요소들에 음수를 취해주고 출력할때 다시 음수를 곱해서 출력하면