티스토리 뷰

문제


출처 : 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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 28
글 보관함