티스토리 뷰
문제
출처 : https://www.acmicpc.net/problem/11055
풀이과정
증가하는 부분 수열 (A[j]<A[i]) 중에서 현재 비교값 (DP[i]이 이전번째까지의 합 DP[j] + 자신의 값(A[i]) 보다 작을 때, DP[i] = DP[j] + A[i] 를 해준다.
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <iostream> int A[1001],DP[1001]; int main() { int N,max=0; std::cin >> N; for (int i = 1; i <= N; i++) std::cin >> A[i]; for (int i = 1; i <= N; i++) { DP[i] = A[i]; for (int j = 1; j < i; j++) { if (A[j] < A[i] && DP[i] < DP[j] + A[i]) DP[i] = DP[j] + A[i]; } if (max < DP[i]) max = DP[i]; } std::cout << max; return 0; } | cs |
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 10808번 알파벳 개수 (0) | 2017.12.08 |
---|---|
[백준] 2631번 줄세우기 (0) | 2017.12.06 |
[백준] 2579번 계단 오르기 (0) | 2017.12.01 |
[백준] 2156번 포도주 시식 (0) | 2017.11.30 |
[백준] 9095번 1, 2, 3 더하기 (0) | 2017.11.30 |