Hikenny25
11286 - 절댓값 힙 본문
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)로만 바꿔주면 된다
'baekjoon (solved.ac) > class 3 Solve' 카테고리의 다른 글
2667 - 단지번호붙이기 (0) | 2022.10.28 |
---|---|
11403 - 경로 찾기 (0) | 2022.10.27 |
11279 - 최대 힙 (0) | 2022.10.27 |
1927 - 최소 힙 (0) | 2022.10.27 |
1012 - 유기농 배추 (0) | 2022.10.27 |
Comments