์๋ ํ์ธ์! ์ค๋์ ๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์ ๋ฌธ์ ๋ฒํธ 2304๋ฒ์ ํ์ด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ฃผ์ด์ง ๊ธฐ๋ฅ๋ค์ ์์น์ ๋์ด๋ฅผ ์ด์ฉํ์ฌ ์ฐฝ๊ณ ๋ค๊ฐํ์ ๋ฉด์ ์ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
๋ฌธ์ URL: https://www.acmicpc.net/problem/2304
1. ๋ฌธ์ ์ค๋ช
์ฃผ์ด์ง ๊ธฐ๋ฅ๋ค์ ์์น์ ๋์ด๋ฅผ ์ด์ฉํ์ฌ ์ฐฝ๊ณ ๋ค๊ฐํ์ ๋ฉด์ ์ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค. ๊ธฐ๋ฅ์ ์์น์ ๋์ด๋ฅผ ๊ณ ๋ คํ์ฌ ์ ์ฒด ๋ค๊ฐํ์ ๋ฉด์ ์ ๊ณ์ฐํฉ๋๋ค.
2. ์ ๊ทผ๋ฒ
1. ๊ธฐ๋ฅ์ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ์ต๋๋ค.
2. ๊ฐ ๊ธฐ๋ฅ์ ์์น์ ๋์ด๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฆฌ์คํธ์ ์ ์ฅํฉ๋๋ค.
3. ๊ฐ์ฅ ๋์ ๊ธฐ๋ฅ์ ์์น์ ๋์ด๋ฅผ ์ฐพ์ต๋๋ค.
4. ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ฉฐ ๋ฉด์ ์ ๊ณ์ฐํฉ๋๋ค.
5. ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ฉฐ ๋ฉด์ ์ ๊ณ์ฐํฉ๋๋ค.
6. ๋ ๋ถ๋ถ์ ๋ฉด์ ์ ํฉ์ฐํ์ฌ ์ต์ข ๋ฉด์ ์ ์ถ๋ ฅํฉ๋๋ค.
3. ์ ๋ต ์ฝ๋
import sys
input = sys.stdin.readline
# ๊ธฐ๋ฅ์ ๊ฐ์ ์
๋ ฅ์ฒ๋ฆฌ
N = int(input())
# ๊ธฐ๋ฅ์ ๋์ด๋ฅผ ์ ์ฅํ ๋ฆฌ์คํธ ์ด๊ธฐํ (์ต๋ 1000๊น์ง์ ์์น)
phi = [0] * 1001
maxL = 0 # ๊ฐ์ฅ ๋์ ๊ธฐ๋ฅ์ ์์น
maxH = 0 # ๊ฐ์ฅ ๋์ ๊ธฐ๋ฅ์ ๋์ด
# ๊ธฐ๋ฅ ์
๋ ฅ
for _ in range(N):
L, H = map(int, input().split())
if H > maxH:
maxH = H
maxL = L
phi[L] = H
curH = 0 # ํ์ฌ ๋์ด
ans = 0 # ๋ฉด์ ํฉ
# ์ผ์ชฝ์์ ๊ฐ์ฅ ๋์ ๊ธฐ๋ฅ๊น์ง ๋ฉด์ ๊ณ์ฐ
for i in range(maxL + 1):
if phi[i] > curH:
curH = phi[i]
ans += curH
curH = 0 # ํ์ฌ ๋์ด ์ด๊ธฐํ
# ์ค๋ฅธ์ชฝ์์ ๊ฐ์ฅ ๋์ ๊ธฐ๋ฅ๊น์ง ๋ฉด์ ๊ณ์ฐ
for i in range(1000, maxL, -1):
if phi[i] > curH:
curH = phi[i]
ans += curH
# ์ต์ข
๋ฉด์ ์ถ๋ ฅ
print(ans)
4. ์ฝ๋ ์ค๋ช
1. ๊ธฐ๋ฅ์ ๊ฐ์ ์ ๋ ฅ ์ฒ๋ฆฌ
• N์ ์ ๋ ฅ๋ฐ์ต๋๋ค.
2. ๊ธฐ๋ฅ ์ ๋ ฅ
• ๊ฐ ๊ธฐ๋ฅ์ ์์น L๊ณผ ๋์ด H๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฆฌ์คํธ phi์ ์ ์ฅํฉ๋๋ค.
• ๊ฐ์ฅ ๋์ ๊ธฐ๋ฅ์ ์์น maxL๊ณผ ๋์ด maxH๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
3. ์ผ์ชฝ์์ ๊ฐ์ฅ ๋์ ๊ธฐ๋ฅ๊น์ง ๋ฉด์ ๊ณ์ฐ
• ํ์ฌ ๋์ด curH๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ฉฐ ๋ฉด์ ์ ๊ณ์ฐํฉ๋๋ค.
• ๊ธฐ๋ฅ์ด ๋ ๋์ ๊ฒฝ์ฐ, ํ์ฌ ๋์ด๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ๋ฉด์ ์ ๋ํฉ๋๋ค.
4. ์ค๋ฅธ์ชฝ์์ ๊ฐ์ฅ ๋์ ๊ธฐ๋ฅ๊น์ง ๋ฉด์ ๊ณ์ฐ
• ํ์ฌ ๋์ด curH๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
• ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ฉฐ ๋ฉด์ ์ ๊ณ์ฐํฉ๋๋ค.
• ๊ธฐ๋ฅ์ด ๋ ๋์ ๊ฒฝ์ฐ, ํ์ฌ ๋์ด๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ๋ฉด์ ์ ๋ํฉ๋๋ค.
5. ์ต์ข ๋ฉด์ ์ถ๋ ฅ
• ๊ณ์ฐ๋ ๋ฉด์ ans๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
5. Github์ผ๋ก ํ์ธ
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ(๋ฐฑ์ค)_Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ(๋ฐฑ์ค) 3020[๊ฐ๋ฅ๋ฒ๋ ] (0) | 2024.06.19 |
---|---|
BOJ(๋ฐฑ์ค) 11660[๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5] (0) | 2024.06.18 |
BOJ(๋ฐฑ์ค) 1912[์ฐ์ํฉ] (0) | 2024.06.17 |
BOJ(๋ฐฑ์ค) 2559[์์ด] (0) | 2024.06.17 |
BOJ(๋ฐฑ์ค) 7795[๋จน์ ๊ฒ์ธ๊ฐ ๋จนํ ๊ฒ์ธ๊ฐ] (0) | 2024.06.16 |