알고리즘 공부
SWEA: 5215 햄버거 다이어트
소연쏘
2020. 12. 15. 11:07
쉬운 완전 탐색 문제
import java.util.Scanner;
public class Solution {
public static int max = 0;
public static void main(String[] args) throws Exception {
Scanner in = new Scanner(System.in);
int testcase = in.nextInt();
for (int t = 1; t <= testcase; t++) {
max = 0;
int n = in.nextInt();
int limitCalories = in.nextInt();
int ingredients[][] = new int[n][2];
for (int i = 0; i < n; i++) {
ingredients[i][0] = in.nextInt();// 맛
ingredients[i][1] = in.nextInt();// 칼로리
}
for (int i = 0; i < n; i++) {
findMaxTaste(i, ingredients[i][0], ingredients[i][1], ingredients, limitCalories);
}
System.out.println("#" + t + " " + max);
}
}
public static void findMaxTaste(int index, int taste, int calories, int ingredients[][], int limit) {
if (calories > limit || index == ingredients.length) {
return;
}
max = Math.max(max, taste);
for (int i = index + 1; i < ingredients.length; i++) {
if (calories + ingredients[i][1] <= limit) {
findMaxTaste(i, taste + ingredients[i][0], calories + ingredients[i][1], ingredients, limit);
}
}
}
}