https://www.acmicpc.net/problem/11052
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
//카드 개수 입력
//System.out.println("카드 개수를 입력하시오: ");
int N = s.nextInt();
int cos[] = new int[N+1];
int[] dp = new int[N+1]; //N개의 카드를 구매했을 시 최댓값
//System.out.println("카드팩 가격을 입력하시오: ");
for(int i=1;i<=N;i++) {
cos[i] = s.nextInt();
}
for(int i=1; i<=N; i++) {
for(int j=1; j<=i; j++) {
dp[i] = Math.max(dp[i], dp[i-j] + cos[j]);
//i개 카드팩을 구매했을 때 가격과 i-j개의 카드 팩을 구매했을시 최대 값+j개 카드 팩 가격중 max값
}
}
System.out.println(dp[N]);
}
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Java] 백준 1145 적어도 대부분의 배수 (0) | 2020.03.03 |
---|---|
[Java] 백준 11004 K번째 수 (0) | 2020.03.02 |
[Java] 백준 2193번 이친수 (0) | 2020.01.11 |
[Java] 백준 10844번 쉬운 계단 수 (0) | 2020.01.11 |
백준 11048번 이동하기 (0) | 2020.01.11 |
댓글