์ฝํ
์ค๋น
<dp> ๋ฐฑ์ค 11722๋ฒ. ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด
์๋๋ค
2023. 1. 10. 13:39
https://www.acmicpc.net/problem/11722
11722๋ฒ: ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด
์์ด A๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ฅผ ๋ค์ด, ์์ด A = {10, 30, 10, 20, 20, 10} ์ธ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ๊ธด ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ A = {10, 30, 10, 20, 20, 10}
www.acmicpc.net
"""
๊ฐ์ํ๋ ์์ด ๊ธธ์ด๊ฐ ๊ฐ์ฅ ํฐ ๊ฒ์ ๊ตฌํ๋ฉด ๋จ
A = {10,30,10,20,20,10}
dp ={ 1, 1, 2, 2, 2, 3}
dp[idx-1]๊ณผ ๋น๊ตํด์
์์ผ๋ฉด +1ํ๋ฉด ๋จ
๊ทธ ์ธ ๊ฒฝ์ฐ๋ idx-2,3,4...์์ +1 ํด์ค=> x
๋ฐ๋ก :
4
6 5 8 4
์ถ๋ ฅ : 2
์ค์ ๋ต : 3
[1,2,1,3]
๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ ค์ฃผ์ด์ผ ํจ.
"""
n = int(input())
lst = list(map(int, input().split()))
dp = [1]*n #์๊ธฐ ์์ ์ ๊ธธ์ด = 1
for i in range(1,n):
for j in range(i):
if lst[j] > lst[i] : #์์ผ๋ฉด
dp[i] = max(dp[i], dp[j]+1)
print(dp)
print(max(dp))