티스토리 뷰

//알고리즘.

1. 부분집합으로 풀었던 문제를 DP테이블을 만들어 품.

2. 0/1 knapsack 처럼 정해진 칼로리에 담을 수 있는 칼로리만큼 담고 만족도를 합하여 구함.

 

import java.util.Scanner;

public class 햄버거다이어트_DP {
	static int T,N,L;
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		T = sc.nextInt();
		
		for (int tc = 1; tc <= T; tc++) {
			N = sc.nextInt();
			L = sc.nextInt();
			
			
			int[] arr = new int[N+1];
			int[] cal = new int[N+1];
			
			for (int i = 1; i <= N; i++) {
				arr[i] = sc.nextInt();
				cal[i] = sc.nextInt();
			}
			
			int[][] dp = new int[N+1][L+1];
			
			for (int i = 1; i < dp.length; i++) {
				for (int j = 0; j < dp[i].length; j++) {
					if(cal[i] > j) {
						dp[i][j] = dp[i-1][j];
					}else {
						dp[i][j] = Math.max(arr[i] + dp[i-1][j-cal[i]], dp[i-1][j]);
					}
				}
			}
			
			System.out.printf("#%d %d\n",tc,dp[N][L]);
			
			
			
		}
		
	}

}

'Algorithm' 카테고리의 다른 글

백준_일곱난쟁이_2309  (0) 2020.10.05
백준_백도어_9205  (0) 2020.10.04
SW Expert Academy_카드 뒤집기  (0) 2020.09.30
SW Expert Academy_벌꿀 채취  (0) 2020.09.29
백준_현수막_14716  (0) 2020.09.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   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
글 보관함