1927번 최소힙
숫자들이 주어지는데 주어진 숫자가 0이 아니면 배열에 숫자를 쌓고 0이면 쌓여있는 숫자 중 가장 작은 값을 출력한다.
만약 배열이 비어있다면 0을 출력하는 문제.
import heapq # heap 을 사용하여 풀이 했다.
import sys
input = sys.stdin.readline
heap = []
for _ in range(int(input())): # 숫자의 개수만큼 순회
n = int(input()) # 숫자 입력
if n == 0: # 0이 주어졌을 때
if len(heap) > 0: # 배열에 숫자가 쌓여있으면
print(heapq.heappop(heap))
# 가장 작은 값 삭제하면서 출력
else:
print(0) # 배열에 숫자가 없으면 0 출력
else:
heapq.heappush(heap,n)
# 주어진 숫자가 0이 아니면 배열에 숫자 쌓기