Algorithm/noj.am

[Python] 백준 1655번 - 가운데를 말해요

SweetDev 2021. 8. 5. 15:16
# 1655번 가운데를 말해요
import sys
import heapq

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

max_heap = []
min_heap = []

for i in range(N):
    num = int(sys.stdin.readline())

    if len(max_heap) == len(min_heap):
        # max 에다가 붙이기
        heapq.heappush(max_heap, (-num, num))
    else:
        # min 에다가 붙이기
        heapq.heappush(min_heap, num)

    if len(max_heap) > 0 and len(min_heap) > 0:
        if max_heap[0][1] > min_heap[0]:
            # swap해주기
            fromMax = heapq.heappop(max_heap)
            fromMin = heapq.heappop(min_heap)

            heapq.heappush(max_heap, (-fromMin, fromMin))
            heapq.heappush(min_heap, fromMax[1])

    print(max_heap[0][1])