백준

백준 - 최소힙 1927

gebalza 2023. 3. 7. 09:53

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

 

1927번: 최소 힙

첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0

www.acmicpc.net

문제 설명

0이 나오면 힙속 가장 작은 값을 출력하고, 그외 입력을 받는다면 힙에 넣기

 

코드 구성

파이썬의 heapq를 이용하면 간편하게 구현가능

 

코드 

#1927 최소힙
import heapq
import sys
n = int(sys.stdin.readline())
heap = []
for _ in range(n):
    x = int(sys.stdin.readline())
    if(x==0):
        if len(heap)==0:
            print(0)
        else:
            result = heapq.heappop(heap)
            print(result)
    else:
        heapq.heappush(heap,x)
반응형