Coding Test/BaekJoon_Python
백준 11279 <최대 힙> Python
JunOnJuly
2023. 12. 2. 11:14
728x90
https://www.acmicpc.net/problem/11279
11279번: 최대 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
heapq 가 최소힙이라는걸 감안하고 입출력시 -1 을 곱해주면 쉽게 풀 수 있습니다.
import heapq
import sys
def solution(N, data_list):
# 큐
hq = []
# 순차적으로 진행
for data in data_list:
# 0 이면
if not data:
# 큐가 비어있으면
if not hq:
print(0)
# 아니면
else:
print(-heapq.heappop(hq))
# 0 이 아니면
else:
heapq.heappush(hq, -data)
N = int(sys.stdin.readline().strip())
data_list = [int(sys.stdin.readline().strip()) for _ in range(N)]
solution(N, data_list)
728x90