Heap의 기본 개념인 Binary search를 활용해 문제를 풀어 보았다
import sys
import heapq
from collections import deque
input = sys.stdin.readline
N = int(input())
heap = []
for i in range(N):
n = int(input())
if n == 0 :
if len(heap) == 0 :
print(0)
else:
print(heap.pop(-1))
else:
if len(heap) == 0 :
heap.append(n)
else:
left = 0
right = len(heap)-1
while left <= right:
mid = (left + right)//2
if heap[mid] > n :
right = mid -1
else:
left = mid + 1
heap.insert(left,n)
#print(heap)
#print('==========')
'알고리즘' 카테고리의 다른 글
백준 1016 (0) | 2021.03.13 |
---|---|
백준_1092 (0) | 2021.03.12 |
백준 10942 팰린드롬? (0) | 2021.03.06 |
ITM_SPRING [Hacker Rank] Breadth first search_ 넓이 우선 탐지 (0) | 2021.03.05 |
백준 1932 (0) | 2021.02.27 |
댓글