티스토리 뷰

algorithm

[DP] 11052 카드 구매하기

tonirr 2020. 5. 5. 17:45

  • 조건
    • 카드를 N개 구매한다.
    • 인덱스의 범위가 입력받은 N을 넘어서는 안된다
    • 카드백에 들어있는 카드가 작은 것부터 산다.
  • 구해야 할 것
    • arr에 입력받는다고 하면 arr을 더한 최대값을 구해야 한다.
  • dp에 들어갈 값
    • 각각의 최대값을 대입해서 넣어준다.
import java.util.Scanner;

public class Main {
	static long dp[];
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); 
		int n = sc.nextInt();
		int dp[] = new int[n+1];
		int arr[] = new int[n+1];
		
		for(int i = 1; i <= n; i++) {
			arr[i] = sc.nextInt();
		}
		
		sc.close();
		
		for(int i = 1; i <= n; i++) {
			for(int j = 1; j <= i; j++) {
				dp[i] = Math.max(dp[i], dp[i-j]+arr[j]);
			}
		}
		System.out.println(dp[n]);
	}
}

'algorithm' 카테고리의 다른 글

11650 - 좌표 정렬하기  (0) 2020.05.11
2751 - 수 정렬하기 2  (0) 2020.05.11
다이나믹 프로그래밍 문제 정리  (0) 2020.05.05
[DP] 2011  (0) 2020.05.05
[DP] 9461 파도반수열  (0) 2020.05.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함