미소를뿌리는감자의 코딩

[백준 2024/02/08] 1927번 최소 힙 - python ver. 본문

코딩 테스트/백준

[백준 2024/02/08] 1927번 최소 힙 - python ver.

미뿌감 2024. 2. 8. 12:33
728x90

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

 

1927번: 최소 힙

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

www.acmicpc.net

 

1. 접근 방법

직관적인 문제인 것 같다.

0이 나오면 heappop해서 출력, 비어있다면 0 출력

값이 나오면 heap 에다가 저장.

 

유의해야할 점은 input이 아니라 sys를 이용해야한다는 점이다. input으로 제출을 하니 시간초과가 나왔다.

코드 상으로는 문제가 없다고 확신했기 때문에, sys를 적용하였고 통과할 수 있었다.

 

2. 코드

import heapq
import sys

max_heap = []
for i in range(int(sys.stdin.readline().strip())):
    value = int(sys.stdin.readline().strip())
    if value == 0:
        sys.stdout.write(str((heapq.heappop(max_heap) if max_heap else 0))+'\n')
    else:
        heapq.heappush(max_heap, value)
728x90