문제 출처
1. 문제설명
- 수
N
개가 주어졌을 때, 가장 큰 증가하는 부분 수열의 합을 출력하라
2. 알고리즘 설계
- 흔히 LIS라고 불리는 well-known 알고리즘이다.
- 로직
i
번째 인덱스부터 시작한다.
- DP 배열의 값은 arr의 현재
i
번째 인덱스 값으로 초기화 한다.
- 첫 번째 인덱스부터
i
번째 인덱스 값까지 검토한다.
- 현재 탐색중인 인덱스의 값이 i보다 작다면,
DP[i]
에는 현재 DP
에 저장된 값과 DP
에 저장된 값 + 현재 인덱스의 값 중 큰 값으로 갱신한다.
- 이후
DP
배열에서 가장 큰 값을 찾아주면 그게 정답이 된다.
3. 전체 코드