반응형
문제
https://www.acmicpc.net/problem/11279
풀이
우선순위 큐를 이용해 O(n * logⁿ) 시간복잡도로 해결한다
파이썬에서는 heapq 라이브러리를 이용해 최소 힙으로 우선순위 큐를 사용할 수 있다
문제에서 최대 값을 찾아야하므로 숫자를 저장할 때 음수로 바꿔서 저장하면 최대 힙처럼 사용할 수 있다
코드
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import heapq
import sys
n = int(input())
heap = []
for _ in range(n):
x = int(sys.stdin.readline())
if x == 0:
if heap:
print(-heapq.heappop(heap))
else:
print(0)
else:
heapq.heappush(heap, -x)
|
cs |
반응형
'BOJ' 카테고리의 다른 글
BOJ 10872 - 팩토리얼 (0) | 2024.08.14 |
---|---|
BOJ 1715 - 카드 정렬하기 (0) | 2024.08.06 |
BOJ 10799 - 쇠막대기 (0) | 2024.07.15 |
BOJ 1158 - 요세푸스 문제 (1) | 2024.01.28 |
백준 17472 - 다리 만들기 2 (1) | 2023.03.06 |