백준 문제 링크
가장 큰 증가하는 부분 수열
- 수열을 data로 받아주고, DP도 똑같이 만들어준다.
- 조건은 다음과 같다.
- 현재 인덱스 이전의 인덱스를 다 살펴보는데,
현재 인덱스 값 > 이전 인덱스 값이면
DP[i] = max(DP[i], data[i] + DP[j])로 변환한다.
-> 현재 값 = max(현재 값, 현재 값 + 이전 값)
- max(DP)를 출력하면 끝!
N = int(input())
data = list(map(int, input().split()))
DP = [i for i in data]
for i in range(1, N):
for j in range(i):
if data[i] > data[j]:
DP[i] = max(DP[i], data[i] + DP[j])
print(max(DP))