์ฝ”ํ…Œ์ค€๋น„

<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))