[Python] 백준 1927번 최소


원천 : https://www.acmicpc.net/problem/1927

1927: 최소 힙

작업 수 N(1 ≤ N ≤ 100,000)은 첫 번째 줄에 지정됩니다.

다음 N 줄은 작업에 대한 정보를 나타내는 정수 x를 받습니다.

x가 자연수라면 배열에 값 x를 삽입(더하기)하는 연산이고 x는 0이다.

www.acmicpc.net

소스 코드

import sys
import heapq

input = sys.stdin.readline

heap = ()

n = int(input())

for i in range(n):
    x = int(input())

    if x == 0:
        if len(heap) == 0:
            print(0)
        else:
            print(heapq.heappop(heap))
    else:
        heapq.heappush(heap, x)

논평

이는 최소 힙으로 해결할 수 있는 문제입니다.

시간 초과 오류 기입 = 체계.시간.라인 읽기 그것으로 해결할 수 있습니다

n개의 숫자를 입력하면 0이면 결과가 출력됩니다.

이때 힙의 길이가 0이면 에러가 발생하므로 길이가 0이면 0을 반환한다.

0이 아닌 자연수이면 heappush는 그 숫자를 힙에 넣습니다.