문제링크: 백준 1927번(최소 힙)

이 문제는 앞의 최대 힙과는 반대로 x가 0이고, 배열이 비어있으면 0출력, 배열이 비어있지 않으면 가장 작은 수 출력, x가 0이 아닌 자연수면 배열에 x를 추가하는 문제다.
import sys, heapq
input = sys.stdin.readline
hq = []
n = int(input())
for _ in range(n):
x = int(input())
if x != 0:
heapq.heappush(hq, x)
else:
print(heapq.heappop(hq) if hq else 0)
이 문제 역시 파이썬의 heapq 모듈을 사용했다.
heapq의 heappush 메서드는 배열에 값이나 튜플을 넣을 수 있고, heapq가 내부적으로 오름차순으로 정렬해주기 때문에 x가 0이 아니면 x를 푸시했고, hq가 비어있으면 0, 비어있지 않으면 가장 앞의 값을 heappop을 통해 출력 및 제거해줬다.