본문 바로가기
알고리즘-python/백준 문제

[백준/1927/파이썬(Python3)] 최소힙

by 빅데이터1020 2021. 7. 8.
SMALL

문제 출처

 

1927번: 최소 힙

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

www.acmicpc.net

 

풀이 코드

import heapq
import sys

N = int(input())
heap=[]

for i in range(N):
    x = int(sys.stdin.readline())
    if x!=0:
        heapq.heappush(heap, x)
    else:
        if not heap:
            print(0)
        else:
            print(heapq.heappop(heap))

 

for문에서 입력값을 받을 때 x=int(input()) 을 썼더니 시간초과가 났습니다.

x=int(sys.stdin.readline()) 을 쓰니까 해결 됐습니다.

 

heapq.heappush(heap, x) 말고

heap.append(x) 를 써도 되지 않을까 생각해서 시도해봤지만, append를 쓰면 틀립니다.

 

 

힙 개념 확인하기 ↓

https://data-analysis-expertise.tistory.com/101

 

[자료구조/파이썬(Python3)] 힙 (Heap)

힙(heap)은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리(Complete binary tree)를 기본으로 한 자료구조(tree-based structure)로서 다음과 같은 힙 속성을 만족합니다. - A가 B

data-analysis-expertise.tistory.com

 

LIST