Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 버퍼
- 큐
- 스택
- 자바
- 프로그래머스 풀이
- lv0
- 문자열
- COS Pro
- 스프링부트 도커
- java
- 알고리즘
- 백준 N과 M 자바
- 프로그래머스 문자열 정렬
- 프로그래머스
- lv2
- 삼각형의 완성조건
- 스프링부트 도커로 배포
- Lv1
- 프로그래머스 자바
- Queue
- 오름차순 정렬
- 스프링부트 도커 배포
- 클라이언트
- SWEA
- StringTokenizer
- Programmers
- 백준
- 이진수 변환
- index of
- Stack
Archives
- Today
- Total
mun dev
[SWEA] D3 5215 햄버거 다이어트 자바(Java) 본문
문제 링크
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWT-lPB6dHUDFAVT
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀이
문제 이해를 했지만 DP는 풀이할 때마다 너무 어렵다..
현재 음식을 선택한 경우와 선택하지 않고 다음 음식으로 이동하는 경우 재귀 호출을 사용해 풀이했다.
풀이 코드
import java.io.*;
import java.util.*;
public class Solution {
public static int n, l, max;
public static int arr[][];
public static int result = 0;
public static void main(String[] args) throws NumberFormatException, IOException {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
n = sc.nextInt();
l = sc.nextInt();
arr = new int[n][2];
max = 0;
for (int i = 0; i < n; i++) {
arr[i][0] = sc.nextInt();
arr[i][1] = sc.nextInt();
}
search(0, 0, 0);
System.out.println("#" + test_case + " " + max);
}
}
public static void search(int idx, int taste, int cal) {
if (cal > l) return;
if (cal <= l) max = Math.max(max, taste);
if (idx == n) return;
// 현재 음식을 선택한 경우
search(idx + 1, taste + arr[idx][0], cal + arr[idx][1]);
// 현재 음식을 선택하지 않고 다음 음식으로 이동
search(idx + 1, taste, cal);
}
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA] D2 1954 달팽이 숫자 자바(Java) (0) | 2023.11.16 |
---|---|
[SWEA] D2 2001 파리퇴치 자바(Java) (0) | 2023.11.16 |
[SWEA] D2 1204 최빈수 구하기 자바(Java) (0) | 2023.11.15 |
[SWEA] D2 1859 백만 장자 프로젝트 자바(Java) (1) | 2023.11.15 |
[SWEA] D3 1206 View 자바(Java) (0) | 2023.11.14 |