백준 1927번 최소 힙

Myeongsu·2022년 1월 11일
0

백준

목록 보기
14/15

문제링크: 백준 1927번(최소 힙)
백준 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을 통해 출력 및 제거해줬다.

profile
명수의 개발 공방

0개의 댓글