728x90
반응형
Silver II
# 11279 최대 힙
링크 : https://www.acmicpc.net/problem/11279
풀이
import heapq
import sys
N = int(sys.stdin.readline())
heap = []
for i in range(N):
x = int(sys.stdin.readline())
if x != 0:
heapq.heappush(heap, -x)
else:
if len(heap) == 0:
print(0)
else:
pop = heapq.heappop(heap)
print(abs(pop))
후기
- 최대 힙을 사용하는 법에 대해 배울 수 있었다.
- 파이썬에서 일반적으로 힙을 구현하면 최소 힙으로 구현된다. 그런데 heappush과정에서 - (마이너스)를 사용하는 트릭으로 최대 힙을 구현할 수 있다.
- sys를 사용하지 않으면 시간 초과로 오답 처리된다.
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] # 2447 별 찍기 - 10 (0) | 2022.03.10 |
---|---|
[백준 파이썬] # 1966 프린터 큐 (0) | 2022.03.09 |
[백준 파이썬] # 3273 두 수의 합 (0) | 2022.03.06 |
[백준 파이썬] #10815 숫자 카드 (0) | 2022.03.04 |
[백준 파이썬] # 9095 1, 2, 3 더하기 (0) | 2022.03.02 |