티스토리 뷰

출처 : https://www.acmicpc.net/problem/11052


1. dp를 이용해 계산한다.


#include <iostream>

#include <algorithm>

using namespace std;


#define MAX_N 1001

#define MAX_P 10001


int i, j, N, result;

int dp[MAX_N], price[MAX_P];


void input()

{

cin >> N;

for (i = 1;i <= N;i++) cin >> price[i];

}


void cal()

{

dp[1] = price[1];

for (i = 2; i <= N; i++) 

{

dp[i] = price[i];

for (j = 1; j < i; j++)

{

dp[i] = max(dp[i], price[j] + dp[i - j]);

}

}


result = dp[N];

}


int main()

{

input(); cal();

cout << result << endl;

}


'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ 11726] 2xn 타일링  (0) 2018.07.23
[BOJ 9095] 1,2,3 더하기  (0) 2018.07.23
[BOJ 11057] 오르막 수  (0) 2018.07.23
[BOJ 2193] 이친수  (0) 2018.07.23
[BOJ 9465] 스티커  (0) 2018.07.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 29 30 31
글 보관함