728x90
반응형

 

https://www.acmicpc.net/problem/11286

 

11286번: 절댓값 힙

첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0

www.acmicpc.net

import sys
import heapq

N = int(sys.stdin.readline())
res = []

for i in range(N):
    x = int(sys.stdin.readline())
    if x != 0:
        heapq.heappush(res , (abs(x) , x))
        print(res)
        #heapq.heappush(결과를 저장할 리스트 , (비교할 값_1) , (비교할 값_2 )
        #==> 우선순위에 따른 정렬을 해준다.
    else:
        if res:
            print(heapq.heappop(res)[1])
        else:
            print(0)

==> 리스트 res에 (우선순위 , 값) 으로 표현해준다.

 

==> x값이 0일경우에  heapq.heappop(res) 해주는데 ==> 우선순위가 높은거 부터 빼준다!!!!

728x90
반응형

+ Recent posts