동캄의 코딩도장

백준 11286 [절댓값 힙] 파이썬 본문

코테/BOJ

백준 11286 [절댓값 힙] 파이썬

동 캄 2023. 3. 21. 11:49

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

 

11286번: 절댓값 힙

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

www.acmicpc.net

#백준 11286 절댓값 힙
import sys
import heapq #파이썬 힙 라이브러리 사용
input=sys.stdin.readline
N=int(input())
h=[]
for _ in range(N):
    val=int(input())
    if val==0: # 들어온 값이 0이고
        if not h: # 힙이 비어있다면
            print(0) #0 출력
        else: #비어있지 않다면
            print(heapq.heappop(h)[1]) #힙 abs(min) 값을 가지는 요소 출력
    else:
        heapq.heappush(h,[abs(val),val]) # 힙에 추가

파이썬 내장 라이브러리 heapq를 사용하여 해결하였다. 내장함수를 쓰지 않고도 구현할 수 있도록 고민해봐야겠다.

'코테 > BOJ' 카테고리의 다른 글

백준 1484 [다이어트] 파이썬  (0) 2024.01.17
백준 1052 [물병] 파이썬  (0) 2024.01.16
백준 1074 [Z] 파이썬  (0) 2023.03.21
백준 11403 [경로 찾기] 파이썬  (0) 2023.03.21
백준 5525 [IOIOI] 파이썬  (0) 2023.03.21