https://www.acmicpc.net/problem/1655
์ด๋ฆฐ์ด์๊ฒ ๋งค์ฐ ์ด๋ ค์ด ๊ฒ์์ด๋ค. ์๊ฐ์ ํ์ด 0.1์ด ์ธ๊ฑธ ๋ณด๋ ๊ธฐ์กด ์ ๋ ฌ ๋ฐฉ์์ผ๋ก๋ ํด๊ฒฐ์ด ํ๋ค ๊ฑฐ ๊ฐ๋ค.
์ฌ์ค๋ฌธ์ ํ๊ธฐ ์ ์ ์ฐ์ ์์ ํ ๋ฌธ์ ์ธ๊ฑธ ์๊ณ ์์ด์ ์ด๊ฑธ ์ด๋ป๊ฒ ์ ์ฉํ ์ง ์๊ฐํ๋ฉด ๋๋ ๋ฌธ์ ๋ค.
์ฐ์ ์์ ํ ๋ฌธ์ ๋ ๋ด๊ฐ ์ ํ ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฅ ๋จผ์ pop ๋๋ ํ๋ค.
๊ทผ๋ฐ ์์ ์ถ๋ ฅ ๋ถ๋ถ์ ๋ณด๋ฉด 1 1 2 2 ๊ฐ์ด ์ค๋ณต๋ ๊ฐ์ด ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅ๋๋ค.
๋ฐ๋ผ์ ๋จ์ํ pop์ ํ๋ ๊ฑด ์๋๋ผ๊ณ ์๊ฐ. ์ค๊ฐ์ ์๋ฏธํ๋ ๊ฐ์ ์ฐพ๊ธฐ ํ๋ค์ด ํ๋ฅผ ๋ ๊ฐ ์ฐ๋ ๋ฐฉ์์ผ๋ก ์๊ฐํ๋ค.
ํ์ด ๊ณผ์
์๋ฅผ ๋ค์ด 1 2 4 5 6 9 ๊ฐ์ด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐฐ์ด์ ๋ณด๋ฉด, ์ค๊ฐ๊ฐ์ 4์ด๋ค.
์ฌ๊ธฐ์ ๋ฐฐ์ด์ ์ ๋ฐ์ผ๋ก ๋๋๋ฉด 1 2 4 / 5 6 9 ๊ฐ ๋๋ค.
์ฌ๊ธฐ์ 4๋ ์ผ์ชฝ ๋ถ๋ถ์์ ์ ์ผ ํฐ ๊ฐ์ด๊ณ , 5๋ ์ค๋ฅธ์ชฝ ๋ถ๋ถ์์ ์ ์ผ ์์ ๊ฐ์ด๋ค.
๋ฐ๋ผ์ ์ผ์ชฝ ๋ฆฌ์คํธ์์ ํฐ ๊ฐ์ ์ ์ฒด ๋ฆฌ์คํธ์์ ์ค๊ฐ๊ฐ์ ์๋ฏธํ๋ค.
์ด๊ฒ์ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฉํ๋ฉด ์ผ์ชฝ ๋ถ๋ถ์ ์ต๋ ํ, ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ์ต์ ํ์ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค.
๋ฐ์ดํฐ ์ ๋ ฅ์ ์ผ์ชฝ๋ถํฐ ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ํ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
์ด๋ ์ฃผ์ํ ์ ์ ์ ๋ ฅ ํ ์ผ์ชฝ ๋ถ๋ถ์ ์ต๋๊ฐ์ด ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ์ต์๊ฐ๋ณด๋ค ํฌ๋ฉด ๋ ๊ฐ์ ๊ตํํด์ฃผ์ด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด [1, 3, 6] / [8, 9]์์ 4๋ฅผ ์ถ๊ฐํ๋ฉด [1, 3, 6] / [4, 8, 9]๊ฐ ๋๋ค.
์ฌ๊ธฐ์ 6๊ณผ 4๋ฅผ ๊ตํํด์ฃผ๋ฉด [1, 3, 4] / [6, 8, 9] ์ด๋ ๊ฒ ์ผ์ชฝ ๋ถ๋ถ์์ ๊ณ์ ์ค๊ฐ๊ฐ์ ์ถ๋ ฅํ ์ ์๋ค.
์ ์ฒด ์ฝ๋
import heapq
import sys
max_heap = []
min_heap = []
input = sys.stdin.readline
N = int(input().rstrip())
for i in range(N):
x = int(input().rstrip())
if i % 2 == 0:
heapq.heappush(max_heap,-x)
else:
heapq.heappush(min_heap,x)
if max_heap and min_heap and -max_heap[0] > min_heap[0]:
maxh_value = -heapq.heappop(max_heap)
minh_value = heapq.heappop(min_heap)
heapq.heappush(max_heap,-minh_value)
heapq.heappush(min_heap,maxh_value)
print(-max_heap[0])
ํ์ด์ฌ์ ์๋ heapq๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋ ํ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ํ์ด๋ค.
๋ฐ๋ผ์ push ํ ๋ ๊ฐ์ ์์๋ก ๋ง๋ค๋ฉด ์ต๋ ํ์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๊ฐ์ ๊ตํํ ๋ ์ต๋ ํ๊ณผ ์ต์ ํ์ ๊ฐ์ด ์กด์ฌํด์ผ ํ๋ฏ๋ก if๋ฌธ์ ์กฐ๊ฑด์ ๋ฃ์ด์ค๋ค.
'๐งฉ Problem Solving > [๋ฐฑ์ค]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 17070 ํ์ดํ ์ฎ๊ธฐ๊ธฐ 1 (python ํ์ด์ฌ) (0) | 2022.06.16 |
---|---|
[๋ฐฑ์ค] 10026 ์ ๋ก์์ฝ(python ํ์ด์ฌ) (0) | 2022.06.15 |
[๋ฐฑ์ค] 7569 ํ ๋งํ (python ํ์ด์ฌ) (0) | 2022.06.14 |
[๋ฐฑ์ค] 13549 ์จ๋ฐ๊ผญ์ง3 (python ํ์ด์ฌ) (0) | 2022.06.13 |
[๋ฐฑ์ค] 2252 ์ค์ธ์ฐ๊ธฐ (python ํ์ด์ฌ) (0) | 2022.06.11 |