baekjoon (solved.ac)/class 3 Solve
11286 - 절댓값 힙
hikenny
2022. 10. 27. 12:00
https://www.acmicpc.net/problem/11286
11286번: 절댓값 힙
첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
- 힙
import sys
input = sys.stdin.readline
from heapq import heappush, heappop
heap = []
for _ in range(int(input())):
cmd = int(input())
if cmd:
heappush(heap, (abs(cmd),cmd))
else:
if heap:
print(heappop(heap)[1])
else:
print(0)
자동으로 2순위 정렬에 뒤 인자를 사용해줘서 별로 할게 없었다!
응용으로 최대 힙 코드에서 -cmd를 abs(cmd)로만 바꿔주면 된다