๋ฌธ์
https://www.acmicpc.net/problem/1655
๋ด ๋ฌธ์ ํ์ด
import sys
import heapq
n = int(sys.stdin.readline().strip())
left = []
right = []
for _ in range(n):
now = int(sys.stdin.readline().strip())
if len(left) == len(right):
heapq.heappush(left, -now)
else:
heapq.heappush(right, now)
if right and right[0] < -left[0]:
leftNum = heapq.heappop(left)
rightNum = heapq.heappop(right)
heapq.heappush(left, -rightNum)
heapq.heappush(right, -leftNum)
print(-left[0])
๐ ํ ๋ฌธ์
- ์ค๊ฐ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์์ ๊ฐ์ left ๋ฆฌ์คํธ์, ํฐ ๊ฐ์ right ๋ฆฌ์คํธ์ ์ ์ฅํด์ฃผ์๋ค.
์ต์ ํ์ ๊ฒฝ์ฐ ๋ฃจํธ ๋ ธ๋์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ ์ฅํ๊ณ , ์ต๋ ํ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์
left ๋ฆฌ์คํธ๋ ์ต์ ํ์ผ๋ก, right ๋ฆฌ์คํธ๋ ์ต๋ ํ์ผ๋ก ๋ง๋ค์ด์ ๋ฃจํธ ๋ ธ๋๋ฅผ ํตํด ํฌ๊ณ ์์์ ๋น๊ตํ๋ค.
(์ฒ์์๋ ํ ์ ๋ ฌ์ ์ด์ฉํ์ง๋ง, ์๊ฐํด๋ณด๋ ๊ตณ์ด ๋ชจ๋ ์๋ฅผ ๋น๊ตํ ํ์๊ฐ ์๊ณ
์ค๊ฐ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํฐ ๊ฐ๊ณผ ์์ ๊ฐ๋ง ๋น๊ตํด์ฃผ๋ฉด ๋์๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.) - left์ right์ ๊ธธ์ด๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ํ์ฌ ์
๋ ฅ๋๋ ๊ฐ์ ํฌํจํ์ฌ ํ์๊ฐ์ ์๊ฐ ์
๋ ฅ๋์๋ค๋ ๋ป์ด๋ฏ๋ก
left ๋ฆฌ์คํธ์ ๊ฐ์ heappush ํ๊ณ , ๊ทธ ์ธ์ ๊ฒฝ์ฐ right ๋ฆฌ์คํธ์ ๊ฐ์ heappush ํ๋ค. - ๊ทธ๋ฆฌ๊ณ ํน์ right์ ๋ฃจํธ ๋
ธ๋ ๊ฐ์ด left์ ๋ฃจํธ ๋
ธ๋ ๊ฐ๋ณด๋ค ๋ ์์ ๊ฒฝ์ฐ,
์ค๊ฐ ๊ฐ๋ณด๋ค ์์ ๊ฐ์ด right์ ๋ค์ด๊ฐ๋ค๋ ๋ป์ด๋ฏ๋ก ๋ ์๋ฅผ ๊ตํํด์ฃผ์๋ค. - ์ฐ์ฐ์ด ๋๋๋ฉด left ๋ฆฌ์คํธ์ ๋ฃจํธ ๋ ธ๋ ๊ฐ์ ์ถ๋ ฅํด์ฃผ์๋ค.
๐ก ํผ๋๋ฐฑ
- ์ฒ์์ ํ ์ ๋ ฌ์ด๋ผ๊ณ ์๊ฐํด์ ํ์๋๋ฐ, ์๊ฐ ์ด๊ณผ์๋ค.
์๊ณ ๋ณด๋ ๊ตณ์ด ๋ค ์ ๋ ฌํ ํ์๊ฐ ์๊ณ , ์ค๊ฐ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ ํฐ ๊ฐ๊ณผ ์์ ๊ฐ๋ง ๋น๊ตํด์ฃผ๋ฉด ๋๋ ๋ฌธ์ ์๋ค. - ํ์ ๊ฐ๋
์ ์ ์์์ผ ํ๊ณ , ์ต๋ ํ๊ณผ ์ต์ ํ์ ๋ง๋ค ์ค ์๋ฉด ๋๋ ๋ฌธ์ ๊ฐ๋ค.
๋๋ ์ ๋ชฐ๋ผ์ ๊ณต๋ถํ๋ฉด์ ํ์๊ณ ,,! ์ด์ ํ์ ์ข ์ฌ์ฉํ ์ค ์๊ฒ ๋ ๊ฒ ๊ฐ๋ค.
'4๏ธโฃ Python > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python Algorithm] ํ๋ก์ด๋ BOJ #11404 (0) | 2022.06.23 |
---|---|
[Python Algorithm] ๊ฒฝ๋ก ์ฐพ๊ธฐ BOJ #11403 (feat. BFS, ํ๋ก์ด๋ ์์ ) (0) | 2022.06.23 |
[Python Algorithm] ๊ฐ์์ค ๋ฐฐ์ BOJ #11000 (0) | 2022.06.13 |
[Python Algorithm] ์นด๋ ๊ตฌ๋งคํ๊ธฐ BOJ #11052 (0) | 2022.05.26 |
[Python Algorithm] ๋ค๋ฆฌ ๋๊ธฐ BOJ #1010 (0) | 2022.05.26 |
๋๊ธ