코딩테스트 대비/BOJ

[Baekjoon/Python] 1927번: 최소 힙 - 효과는 굉장했다!

bluetag_boy 2021. 12. 25. 15:58
반응형
 

1927번: 최소 힙

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

www.acmicpc.net

 

알고리즘 분류

  • 자료 구조
  • 우선순위 큐

 

 

SOLUTION

import sys
import heapq

N = int(sys.stdin.readline())
heap = []

for _ in range(N):
    x = int(sys.stdin.readline())

    if x > 0 :
        heapq.heappush(heap, x)

    elif x == 0:
        if heap == []:
            print(0)

        else:
            print(heap[0])
            heapq.heappop(heap)

 

※ heapq 모듈

 

heapq — 힙 큐 알고리즘 — Python 3.10.1 문서

heapq — 힙 큐 알고리즘 소스 코드: Lib/heapq.py 이 모듈은 우선순위 큐 알고리즘이라고도 하는 힙(heap) 큐 알고리즘의 구현을 제공합니다. 힙은 모든 부모 노드가 자식보다 작거나 같은 값을 갖는

docs.python.org