중앙값을 기준으로 우선순위 큐 두 개를 만들어주고 풀었다.
코드 더러워지는거 싫어서
hpp = heapq.heappop
hps = heapq.heappush
라고 미리 써두고 풀었다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import heapq, sys
input = sys.stdin.readline
hpp = heapq.heappop
hps = heapq.heappush
l = []
r = []
n = int(input())
for i in range(n):
t = int(input())
if i < 2:
hps(r, t)
now = r[0]
print(r[0])
continue
if t <= now:
hps(l, -t)
else:
hps(r, t)
if len(l) == len(r):
lpop = hpp(l)
hps(r, -lpop)
if len(l) + 3 == len(r):
rpop = hpp(r)
hps(l, -rpop)
now = r[0]
print(r[0])
|
cs |
'백준 문제풀이' 카테고리의 다른 글
백준 13263 - 나무 자르기 [Python] (0) | 2021.03.29 |
---|---|
백준 8911 - 거북이 [Python] (0) | 2021.03.29 |
백준 21133 - N-Queen 2 [Python] (0) | 2021.03.12 |
백준 20913 - Mixtape Management [Python] (0) | 2021.02.09 |
백준 19240 - 장난감 동맹군 [C++] (0) | 2021.01.20 |