#include <stdio.h>

int card[1001];

int max(int a,int b) {
    return a>b?a:b;
}
int bottom_up(int n) {
    int dp[1001]={0};
    //기저
    dp[1]=card[1];
    for(int i=2; i<=n; i++) {
        for(int j=1; j<=i; j++) {
            //if(dp[i]<dp[i-j]+card[j])
            //dp[i]=dp[i-j]+card[j];
            //밑에는 위에 걸 다르게 표시한거임
            dp[i]=max(dp[i],dp[i-j]+card[j]);
        }
    }
    return dp[n];
}
int main() {
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n; i++){
        scanf("%d",&card[i]);
    }
    printf("%d",bottom_up(n));
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: