본문 바로가기
알고리즘/BOJ

[BOJ / 백준] 1927 최소 힙 python / 파이썬 우선순위 큐 / 힙

by seohmoon 2023. 7. 25.

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

 

1927번: 최소 힙

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

www.acmicpc.net


1) 요구사항 분석 : 문제 읽기

0이 주어진 횟수만큼 출력

 

2) 설계 : 접근 방식

최소힙을 이용

import heapq

입력으로 받은 숫자가 자연수일 경우에만 값을 입력

0이면 출력하고, 힙이 비어있으면 팝할때 에러가 발생하니 그땐 그냥 프린트 0

# BOJ1927 최소 힙
import sys, heapq
input = sys.stdin.readline
n = int(input())
heap = []
for x in range(n):
    x = int(input())
    if x > 0:
        heapq.heappush(heap, x)
    elif x == 0:
        if len(heap) == 0:
            print(0)
        else:
            print(heapq.heappop(heap))

 

댓글