코딩하는 해맑은 거북이
[Python] 최대 힙 - 백준 본문
해당 글은 백준 11279번 문제 '최대 힙'을 다룬다.
문제
https://www.acmicpc.net/problem/11279
설명
해당 문제는 heapq 라이브러리를 이용해서 풀 수 있다.
heapq 라이브러리는 기본으로 '최소 힙'으로 구성되어 있다.
'최대 힙'으로 사용하기 위해서는 간단하게 -1을 곱하여 음수로 만들어주고, 출력시에 다시 양수로 되돌려주면 된다.
또한, 해당 문제에서 시간을 단축하기위해 input을 sys 라이브러리를 사용하였다.
코드
import heapq, sys
input = sys.stdin.readline
n = int(input())
queue = []
for _ in range(n):
x = int(input())
if x == 0:
if len(queue) == 0:
print(0)
else:
print(heapq.heappop(queue)*-1)
else:
heapq.heappush(queue, x*-1)
'코딩테스트' 카테고리의 다른 글
[Python] 오르막 수 - 백준 (DP) (0) | 2023.08.10 |
---|---|
[Python] 기타줄 - 백준 (DP, 그리디) (0) | 2023.08.10 |
[Python] 동물원 - 백준 (DP) (0) | 2023.06.05 |
[Python] Z - 백준 (분할정복) (0) | 2023.05.10 |
[Python] 한 줄로 서기 - 백준 (0) | 2023.05.09 |
Comments