BOJ

백준 11279 - 최대 힙

yanJuicy 2024. 8. 2. 12:24
반응형

문제

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
 
= 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