백준 1927

Jehyung Ahn·2023년 4월 17일
0
post-thumbnail

최소 힙


1. 조건

  • N : 연산의 개수 ( 1 <= N <= 100,000)
  • x : 음이 아닌 정수 ( 0 <= x < 2^31)

2. 출력

  • x != 0 : 배열의 최소값을 출력
  • x == 0 : 0을 출력

3. 방식

  • 힙을 사용
    • 파이썬의 힙 모듈은 최소 힙의 형태로 자동 정렬됨
  • x의 입력이 하나씩 주어져서 sys.stdin.readline 사용

4. 코드

# 최소 힙

import heapq    # 파이썬 내부모듈 힙 사용
import sys

input = sys.stdin.readline  # 한 줄씩 받는 코드를 빨리 받기 위함
N = int(input())
heap = []

for _ in range(N):
    x = int(input())

    if x:   # 0이 아닌 경우, 추가
        heapq.heappush(heap, x)
    elif heap:  # x가 0이지만, 힙에 원소가 있는 경우
        print(heapq.heappop(heap))
    else:   # x가 0이고 힙이 비어있는 경우
        print(0)
profile
A Curious Developer

0개의 댓글