📊알고리즘, 문제풀이/📈문제풀이 (PS)

[알고리즘][Python] 백준 1927 최소 힙 문제 풀이

Written by Donghak Park

문제 출처 : www.acmicpc.net/problem/1927

 

1927번: 최소 힙

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

www.acmicpc.net


문제 해석 : 유명한 자료구조 중 하나인 최소힙의 사용법 또는 구현을 할 수 있는지 묻는 문제이다.

 

문제 풀이 :  입력이 자연수일 때는 삽입 연산을, 0일 때는 pop을 해주는 문제이다. Python에서 제공하는 heapq 를 사용하면 간단하게 문제를 풀 수 있다.

 

가능한 다른 풀이 : Python에서 제공하는 모듈인 heapq를 사용하지 않고 직접 구현하여 만들 수 있다.


풀이 코드

import sys
import heapq
input = sys.stdin.readline

N = int(input())
Q = []
for _ in range(N):
    temp = int(input())

    if temp > 0 :
        heapq.heappush(Q, temp)
    elif temp == 0:
        if len(Q) != 0:
            print(heapq.heappop(Q))
        elif len(Q) == 0:
            print(0)

author : donghak park
contact : donghark03@naver.com

## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.