728x90
https://www.acmicpc.net/status?user_id=freemjstudio&problem_id=11053&from_mine=1
dp 를 이용해서 풀어보았다.
array[i] > array[j] and dp[i] < dp[j] 이면 dp[i] = dp[j]
이 코드를 통해서 자기 자신보다 작은 숫자들 중에서 dp에 저장된 배열이 가장 큰 값을 갱신하면서 가져오는것이다
저장된 값을 가져온다 !
# 11053 가장 긴 증가하는 부분 수열
n = int(input())
array = list(map(int, input().split()))
dp = [0]*n
for i in range(n):
for j in range(i):
if array[j] < array[i] and dp[i] < dp[j]:
dp[i] += dp[j]
print(max(dp))
728x90