โ๋ฌธ์
https://www.acmicpc.net/problem/2075

๋ฉ๋ชจ๋ฆฌ: 115420 KB, ์๊ฐ: 532 ms
์๋ฃ ๊ตฌ์กฐ, ์ ๋ ฌ, ์ฐ์ ์์ ํ
N×N์ ํ์ ์ N2๊ฐ ์ฑ์์ ธ ์๋ค. ์ฑ์์ง ์์๋ ํ ๊ฐ์ง ํน์ง์ด ์๋๋ฐ, ๋ชจ๋ ์๋ ์์ ์ ํ ์นธ ์์ ์๋ ์๋ณด๋ค ํฌ๋ค๋ ๊ฒ์ด๋ค. N=5์ผ ๋์ ์๋ฅผ ๋ณด์.
| 12 | 7 | 9 | 15 | 5 |
| 13 | 8 | 11 | 19 | 6 |
| 21 | 10 | 26 | 31 | 16 |
| 48 | 14 | 28 | 35 | 25 |
| 52 | 20 | 32 | 41 | 49 |
์ด๋ฌํ ํ๊ฐ ์ฃผ์ด์ก์ ๋, N๋ฒ์งธ ํฐ ์๋ฅผ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ํ์ ์ฑ์์ง ์๋ ๋ชจ๋ ๋ค๋ฅด๋ค.
โ๐ปํ์ด
์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํด N๋ฒ์งธ ํฐ ์๋ฅผ ์ฐพ์ต๋๋ค.
์ต์ ํ ํ๋ฅผ ์ด์ฉํ๋ฉด [12], [7, 12], [7, 12, 9], ... , [28, 31, 48, 35, 52], [31, 32, 48, 52, 35], [32, 35, 48, 52, 41], [35, 41, 48, 52, 49]๋ก ์ ์ฅ๋ฉ๋๋ค.
์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก N๋ฒ์งธ ํฐ ์๋ฅผ ์ฐพ๊ธฐ ์ํด์ ์ฐ์ ํ์ N๊ฐ์ ์๋ฅผ heappush๋ฅผ ์ด์ฉํด ๋ฃ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ N๊ฐ์ ์๊ฐ ์๋ค๋ฉด heap[0]๋ฅผ ํ์ ์์ ๋น๊ตํฉ๋๋ค. ํ์ ์๊ฐ ํ์ฌ heap[0]๋ณด๋ค ํฌ๋ค๋ฉด heap[0]๋ฅผ ์ ๊ฑฐํ๊ณ ํ์ ์๋ฅผ ๋ฃ์ต๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ์ ํ๋ฉด ๋ง์ง๋ง์ heap[0]์๋ N๋ฒ์งธ ํฐ ์๊ฐ ์์นํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก heap[0]๋ฅผ ์ถ๋ ฅํ์ฌ N๋ฒ์งธ ํฐ ์๋ฅผ ๋ํ๋ด๋ฉด ๋ฉ๋๋ค.
๐ป์ฝ๋
import sys
from heapq import heappush, heappop
input = sys.stdin.readline
N = int(input())
heap = []
for _ in range(N):
for n in list(map(int, input().split())):
if len(heap) < N:
heappush(heap, n)
if heap[0] < n:
heappop(heap)
heappush(heap, n)
print(heap[0])
๐ํ๊ธฐ

์ ๋ ฌ์ด๋ผ๊ณ ํด์ ์ ๋ ฅ ๋ค ๋ฐ๊ณ for๋ฌธ ์จ์ ์ ๋ ฌํ ๋ค์์ ํ ํ์ ๋ฃ๋ ๋นํจ์จ์ ์ธ ์ผ์ ๋ฒ์๋ค... ๊ทธ๋ฐ๋ฐ ๊ตณ์ด ๊ทธ๋ด ํ์ ์์ด ํ ํ๋ฅผ ์ด์ฉํด ์ ๋ ฌํด์ N๋ฒ์งธ ํฐ ์๋ฅผ ์ฐพ์ผ๋ฉด ๋์๋ค...
'Coding Test > Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค] [1์ฐจ] ๋ด์ค ํด๋ฌ์คํฐ๋ง/Python - Lv.2 (0) | 2025.10.02 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค] [1์ฐจ] ๋น๋ฐ์ง๋/Python - Lv.1 (0) | 2025.10.01 |
| [๋ฐฑ์ค] 20040. ์ฌ์ดํด ๊ฒ์/Python - Gold4 (0) | 2025.09.10 |
| [๋ฐฑ์ค] 1956. ์ด๋/Python - Gold4 (0) | 2025.08.20 |
| [๋ฐฑ์ค] 1976. ์ฌํ ๊ฐ์/Python - Gold4 (0) | 2025.08.18 |