๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
-
S2 | DP
์ฐธ๊ณ (๋น์ทํ ์ ํ) : deok2kim.tistory.com/173
numbers์๋ ์์ด์ด ๋ค์ด์๋ค.
dp๋ผ๋ 1์ฐจ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ ๋ค. (1์ด ์ด๊ธฐํ, ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ๊ธธ์ด๊ฐ ๋ค์ด๊ฐ ๊ฒ์ด๋ค.)
1๋ก ์ด๊ธฐํํ ์ด์ ๋ ํผ์๋ง ๊ฐ๋ฅํ ๋๋ ๊ธธ์ด๊ฐ 1์ด๋ฏ๋ก
numbers๋ฅผ ํ๋์ฉ ๋๋ฉด์ ์์ ๋ณด๋ค ์์ชฝ์ ์ซ์์ ๋น๊ตํ๋ค.
์์ ๋ณด๋ค ์์ชฝ์ ์ซ์๊ฐ ํด ๊ฒฝ์ฐ - ๋์ ๊ทธ ์ซ์๋ ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์์ชฝ์ ์ซ์์ ๋ถ๋ถ ์์ด์ ๊ธธ์ด์ 1์ ๋ํ ๊ฐ์ด ์์ ์ ๋ถ๋ถ ์์ด์ ๊ธธ์ด์ด๋ค.
๊ฐ ์ซ์์์ ๊ฐ์ฅ ๊ธด ์ซ์๋ฅผ dp ์ ์ ์ฅํ๋ค.
max๊ฐ์ ์ถ๋ ฅ
๐ป์์ค ์ฝ๋
N = int(input())
numbers = list(map(int, input().split()))
dp = [1] * N
for i in range(1, N):
for j in range(i):
if numbers[j] > numbers[i]:
dp[i] = max(dp[i], dp[j] + 1)
print(max(dp))
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋งํฌ: https://www.acmicpc.net/problem/11722
๋ฐ์ํ
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ๋ฐฑ์ค - 1182. ๋ถ๋ถ์์ด์ ํฉ (0) | 2020.10.05 |
---|---|
[python] ๋ฐฑ์ค - 11055. ๊ฐ์ฅ ํฐ ์ฆ๊ฐ ๋ถ๋ถ ์์ด (0) | 2020.10.04 |
[python] ๋ฐฑ์ค - 7562. ๋์ดํธ์ ์ด๋ (0) | 2020.10.02 |
[python] ๋ฐฑ์ค - 4948. ๋ฒ ๋ฅดํธ๋ ๊ณต์ค (0) | 2020.10.01 |
[python] ๋ฐฑ์ค - 16234. ์ธ๊ตฌ ์ด๋(์ผ์ฑ SW ์ญ๋ ํ ์คํธ ๊ธฐ์ถ ๋ฌธ์ ) (2) | 2020.09.30 |