Hikenny25

11286 - 절댓값 힙 본문

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)로만 바꿔주면 된다

'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