티스토리 뷰
5215. 햄버거 다이어트
import java.io.*;
import java.util.*;
// 210208
public class Solution_D3_5215_햄버거다이어트 {
static int N, L;
static int[][] burgerArr;
static int maxPoint;
// static 변수는 main에서 매번 초기화 해야 하는거 까먹지좀말자^^
static void subset(int cnt, int totalCal, int totalPoint) {
if (totalCal > L) {
return;
}
if (cnt==N) {
maxPoint = Math.max(maxPoint, totalPoint);
return;
}
subset(cnt+1, totalCal + burgerArr[cnt][1], totalPoint + burgerArr[cnt][0]);
subset(cnt+1, totalCal, totalPoint);
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int tc=1; tc<=T; tc++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
N = Integer.parseInt(st.nextToken()); // 재료수
L = Integer.parseInt(st.nextToken()); // 제한 칼로리
maxPoint = 0;
burgerArr = new int[N][2];
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine(), " ");
burgerArr[i][0] = Integer.parseInt(st.nextToken()); // 점수
burgerArr[i][1] = Integer.parseInt(st.nextToken()); // 칼로리
}
subset(0, 0, 0);
System.out.println("#" + tc + " " + maxPoint);
}
br.close();
}
}
1. static 변수는 main에서 매번 초기화 하는거 잊지 좀 말자
2. 완전 탐색 (부분집합/ 조합/ 순열) 코드에 익숙해지자 많이 풀자
'코딩테스트 > SW Expert' 카테고리의 다른 글
[SWEA] 1494. 사랑의 카운슬러 (0) | 2021.02.09 |
---|---|
[SWEA] 9229. 한빈이와 Spot Mart - 조합 (0) | 2021.02.09 |
[SWEA] 1940. 가랏! RC카! (0) | 2021.02.08 |
[SWEA] 1234. [S/W 문제해결 기본] 10일차 - 비밀번호 (0) | 2021.02.06 |
[SWEA] 1223. [S/W 문제해결 기본] 6일차 - 계산기2 (0) | 2021.02.05 |
댓글