백준_1927번

정소담·2023년 3월 2일
0

BOJ Short Review

목록 보기
41/44
post-thumbnail

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이 아니면 배열에 숫자 쌓기
profile
Hi ! I'm newbie :)

0개의 댓글