ebson

파이썬 자료구조 예제문제 (3) 본문

ALGORITHM STUDY WITH PYTHON/Theories & basics

파이썬 자료구조 예제문제 (3)

ebson 2023. 2. 5. 17:47

아래 코드는 Udemy 알고리즘 코딩 테스트 입문부터 합격까지 (Feat. 컴공선배 알고리즘캠프) 강의 섹션 3: PART 2. 알고리즘 유형 분석 - 자료구조, 12강 Chapter1. 자료구조 - 예제문제 (3) 내용을 요약한 코드입니다.

 

# 예제문제 (3)
# boj.kr/11286 절댓값 힙
# 우선순위 큐

import heapq as hq
import sys

input = sys.stdin.readline
pq = []
for _ in range(int(input())):
    x = int(input())
    if x:
        hq.heappush(pq, (abs(x), x))
    else:
        print(hq.heappop(pq)[1] if pq else 0)
import heapq as hq
import sys    

input = sys.stdin.readline
min_heap = []
max_heap = []
for _ in range(int(input())):
    x = int(input())
    if x:
        if x > 0:
            hq.heappush(min_heap, x)
        else:
            hq.heappush(max_heap, -x)
    else:
        if min_heap:
            if max_heap:
                if min_heap[0] < abs(-max_heap[0]):
                    print(hq.heappop(min_heap))
                else:
                    print(-hq.heappop(max_heap))
            else:
                print(hq.heappop(min_heap))
        else:
            if max_heap:
                print(-hq.heappop(max_heap))
            else:
                print(0)
Comments