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
'Coding Test > BaekJoon_Python' 카테고리의 다른 글
백준 11066 <파일 합치기> Python (1) | 2023.12.04 |
---|---|
백준 11286 <절댓값 힙> Python (1) | 2023.12.03 |
백준 10986 <나머지 합> Python (0) | 2023.12.01 |
백준 9936 <문자열 폭발> Python (0) | 2023.11.30 |
백준 2630 <색종이 만들기> Python (0) | 2023.11.29 |