https://www.acmicpc.net/problem/1965
๐ ๋ฌธ์
์ ์ก๋ฉด์ฒด ๋ชจ์์ ์์๊ฐ ์ผ๋ ฌ๋ก ๋์ด์ ์๋ค. ์์๋ง๋ค ํฌ๊ธฐ๊ฐ ์ฃผ์ด์ ธ ์๋๋ฐ, ์์ ์๋ ์์์ ํฌ๊ธฐ๊ฐ ๋ค์ ์๋ ์์์ ํฌ๊ธฐ๋ณด๋ค ์์ผ๋ฉด, ์์ ์๋ ์์๋ฅผ ๋ค์ ์๋ ์์ ์์ ๋ฃ์ ์๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด ์์์๋ถํฐ ์์๋๋ก ํฌ๊ธฐ๊ฐ (1, 5, 2, 3, 7)์ธ 5๊ฐ์ ์์๊ฐ ์๋ค๋ฉด, ํฌ๊ธฐ 1์ธ ์์๋ฅผ ํฌ๊ธฐ 5์ธ ์์์ ๋ฃ๊ณ , ๋ค์ ์ด ์์๋ฅผ ํฌ๊ธฐ 7์ธ ์์ ์์ ๋ฃ์ ์ ์๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ์์๋ฅผ ๋ฃ์ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ ์ ์๋ค. ์์ ์์์ ์ฐจ๋ก๋๋ก ํฌ๊ธฐ๊ฐ 1, 2, 3, 7์ธ ์์๋ฅผ ์ ํํ๋ฉด ์ด 4๊ฐ์ ์์๊ฐ ํ ๊ฐ์ ์์์ ๋ค์ด๊ฐ๊ฒ ๋๋ค.
์์์ ํฌ๊ธฐ๊ฐ ์ฃผ์ด์ง ๋, ํ ๋ฒ์ ๋ฃ์ ์ ์๋ ์ต๋์ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐ ์ ๋ ฅ
ํ์ผ์ ์ฒซ ๋ฒ์งธ ์ค์ ์์์ ๊ฐ์ n (1 ≤ n ≤ 1000)์ ๋ํ๋ธ๋ค. ๋ ๋ฒ์งธ ์ค์๋ ๊ฐ ์์์ ํฌ๊ธฐ๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์์์ ํฌ๊ธฐ๋ 1,000์ ๋์ง ์๋ ์์ฐ์์ด๋ค.
๐ ์ถ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์ค์ ๋ฃ์ ์ ์๋ ์ต๋์ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
๐ ํ์ด ๋ฐฉ์
11053๋ฒ ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด ๊ณผ ๊ฑฐ์ ๋์ผํ ๋ฌธ์ ์ ๋๋ค.
ํ๋ฉด์ ๊ฐ์ฅ ์ด๋ ค์ ๋๊ฒ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํ ๋ ์ด์ค for ๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋ฌด์กฐ๊ฑด ์๊ฐ ์ด๊ณผ๊ฐ ๋๋ค๋ ๊ณ ์ ๊ด๋ ์ด์๋๋ฐ์.
ํด๋น ๋ฌธ์ ๋ ์ด์ค for ๋ฌธ์ ์ฌ์ฉํด๋ ์๊ฐ ์ด๊ณผ๊ฐ ๋์ง ์์ต๋๋ค.
์ด ์ ๊ณผ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (DP) ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ ๋๋ค.
1. ์์์ ํฌ๊ธฐ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ
2. ํด๋น ์์๋ฅผ ๋ฐ๋ณต๋ฌธ์ ๋๊ณ ,
3. ๊ทธ ์์ ์๋ ์์๋ค์ ๋ํด์ ๋ ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์ ์๊ธฐ ์์๋ณด๋ค ์์ ์์๊ฐ ์๋์ง๋ฅผ ํ์ธํฉ๋๋ค.
4. ๋ง์ฝ ์๊ธฐ ์์๋ณด๋ค ์์ ์์๊ฐ ์์ผ๋ฉด, max(์์ ์์์ ํ ๋ฒ์ ๋ฃ์ ์ ์๋ ์ต๋์ ์์ ๊ฐ์ + 1, ํ์ฌ ์์์ ํ๋ฒ์ ๋ฃ์ ์ ์๋ ์ต๋์ ์์ ๊ฐ์) ๋ฅผ ๋น๊ตํด์ ์ ์ฅํด์ค๋๋ค.
5. ์ต๋ ์์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
๐ ์ฝ๋
n = int(input())
boxes = [int(box) for box in input().split()]
dp = [1 for _ in range(n)]
for i in range(1, n):
for j in range(i):
if boxes[j] < boxes[i]:
dp[i] = max(dp[j] + 1, dp[i])
print(max(dp))
'๐ฉ๐ปโ๐ป ์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 31964๋ฒ ๋ฐํ ํ์ (Python) (0) | 2025.02.12 |
---|---|
[๋ฐฑ์ค] 1920๋ฒ ์ ์ฐพ๊ธฐ (Python) (0) | 2025.02.11 |
[๋ฐฑ์ค] 1912๋ฒ ์ฐ์ํฉ (Python) (1) | 2024.11.15 |
[๋ฐฑ์ค] 11727๋ฒ 2xn ํ์ผ๋ง 2 (Python) (0) | 2024.10.11 |
[๋ฐฑ์ค] 11650๋ฒ ์ขํ ์ ๋ ฌํ๊ธฐ (Python) (1) | 2024.09.14 |