1927번: 최소 힙
첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이�
www.acmicpc.net
import sys
import heapq
# 최소값 순서로 출력 => 힙 이용
def search(a):
res = []
qu = []
for x in a:
if x > 0:
heapq.heappush(qu, x)
else:
if qu:
res.append(heapq.heappop(qu))
else:
res.append(0)
return res
N = int(input())
nums = [int(sys.stdin.readline()) for _ in range(N)]
ans = search(nums)
[print(x) for x in ans]
'BOJ 알고리즘 (패캠) > 정렬, 탐색' 카테고리의 다른 글
1766번: 문제집 (힙, 위상정렬) - Fastcampus (0) | 2020.10.07 |
---|---|
1715번: 카드 정렬하기 (힙) - Fastcampus (0) | 2020.10.07 |
2250번: 트리의 높이와 너비 (트리, 재귀) - Fastcampus (0) | 2020.10.07 |
1991번: 트리 순회 (트리, 재귀) - Fastcampus (0) | 2020.10.07 |
1939번: 중량제한 (탐색, 이분탐색, BFS) - Fastcampus (0) | 2020.10.07 |