[SWEA][Java] 5215. ํ–„๋ฒ„๊ฑฐ ๋‹ค์ด์–ดํŠธ

2025. 7. 18. 14:03ยท๐Ÿ’ญ Problem Solving/Java

๋ฌธ์ œ

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWT-lPB6dHUDFAVT

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com

 

๋ฌธ์ œ ์ดํ•ด

์ œํ•œ๋œ ์นผ๋กœ๋ฆฌ ๋‚ด์—์„œ ๋ง› ์ ์ˆ˜๋ฅผ ์ตœ๋Œ€ํ™”ํ•˜๋Š” ์žฌ๋ฃŒ์˜ ์กฐํ•ฉ์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋ง› ์ ์ˆ˜์™€ ์นผ๋กœ๋ฆฌ๋ฅผ ๊ฐ€์ง„ N๊ฐœ์˜ ์žฌ๋ฃŒ๊ฐ€ ์žˆ๋‹ค.

์ด ์ค‘์—์„œ ์ผ๋ถ€๋ฅผ ์„ ํƒํ•ด์„œ ์ด ์นผ๋กœ๋ฆฌ๊ฐ€ L ์ดํ•˜์ธ ์กฐํ•ฉ ์ค‘์—์„œ ๋ง› ์ ์ˆ˜์˜ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•œ๋‹ค.

 

๋ฌธ์ œ ํ’€์ด

๐Ÿ“ ์žฌ๋ฃŒ ์ •๋ณด ์ €์žฅ: ๊ฐ ์žฌ๋ฃŒ๋Š” ๋ง› ์ ์ˆ˜์™€ ์นผ๋กœ๋ฆฌ๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ Pair ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์–ด List์— ์ €์žฅํ•œ๋‹ค.

 

๐Ÿ’ก  ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์ด์šฉํ•œ ์กฐํ•ฉ ํƒ์ƒ‰

: ๊ฐ€์ง€์น˜๊ธฐ(pruning)๋ฅผ ํ†ตํ•ด ์นผ๋กœ๋ฆฌ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ ์กฐ๊ธฐ ์ข…๋ฃŒํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ํƒ์ƒ‰์„ ์ค„์ธ๋‹ค.

  • ํ˜„์žฌ ์ธ๋ฑ์Šค idx, ๋ˆ„์  ๋ง› ์ ์ˆ˜ tasteSum, ๋ˆ„์  ์นผ๋กœ๋ฆฌ calSum์„ ์ธ์ž๋กœ ์žฌ๊ท€ ํ˜ธ์ถœํ•œ๋‹ค.
  • ํ˜„์žฌ ์žฌ๋ฃŒ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ์™€ ์„ ํƒํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ„์–ด ์žฌ๊ท€ ํ˜ธ์ถœํ•œ๋‹ค.
  • ๋ˆ„์  ์นผ๋กœ๋ฆฌ๊ฐ€ ์ œํ•œ ์นผ๋กœ๋ฆฌ l์„ ์ดˆ๊ณผํ•˜๋ฉด ํ•ด๋‹น ์กฐํ•ฉ์€ ๋ฒ„๋ฆฐ๋‹ค.
  • ๋ชจ๋“  ์žฌ๋ฃŒ๋ฅผ ํƒ์ƒ‰ํ–ˆ๋‹ค๋ฉด (idx == list.size()), ํ˜„์žฌ ์กฐํ•ฉ์˜ ๋ง› ์ ์ˆ˜๋ฅผ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค.

 

์ฝ”๋“œ

import java.io.*;
import java.util.*;

public class Solution {

    static class Pair {
        int taste;
        int calories;

        Pair(int taste, int calories) {
            this.taste = taste;
            this.calories = calories;
        }
    }

    static List<Pair> list = new ArrayList<>();
    static int l = 0;
    static int ans = 0;

    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++) {
            ans = 0;
            list.clear();

            StringTokenizer st = new StringTokenizer(br.readLine());
            int n = Integer.parseInt(st.nextToken());
            l = Integer.parseInt(st.nextToken());

            for (int i = 0; i < n; i++) {
                st = new StringTokenizer(br.readLine());
                int taste = Integer.parseInt(st.nextToken());
                int cal = Integer.parseInt(st.nextToken());
                list.add(new Pair(taste, cal));
            }

            backtracking(0, 0, 0);
            System.out.println("#" + tc + " " + ans);
        }
    }

    static void backtracking(int idx, int tasteSum, int calSum) {
        if (calSum > l) return;
        if (idx == list.size()) {
            ans = Math.max(ans, tasteSum);
            return;
        }

        backtracking(idx + 1, tasteSum + list.get(idx).taste, calSum + list.get(idx).calories);
        backtracking(idx + 1, tasteSum, calSum);
    }
}

 

'๐Ÿ’ญ Problem Solving > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ][Java] 14503. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ  (0) 2025.09.03
[SWEA][Java] 3421. ์ˆ˜์ œ ๋ฒ„๊ฑฐ ์žฅ์ธ  (4) 2025.08.29
[BOJ][Java] 1946. ์‹ ์ž… ์‚ฌ์›  (1) 2025.08.26
[BOJ][Java] 2492. ๋ณด์„  (0) 2025.08.20
[BOJ][Java] 16926. ๋ฐฐ์—ด ๋Œ๋ฆฌ๊ธฐ 1  (4) 2025.08.07
'๐Ÿ’ญ Problem Solving/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [SWEA][Java] 3421. ์ˆ˜์ œ ๋ฒ„๊ฑฐ ์žฅ์ธ
  • [BOJ][Java] 1946. ์‹ ์ž… ์‚ฌ์›
  • [BOJ][Java] 2492. ๋ณด์„
  • [BOJ][Java] 16926. ๋ฐฐ์—ด ๋Œ๋ฆฌ๊ธฐ 1
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿ“‚ Project (2)
        • Paint the City (2)
      • ๐Ÿ’ญ Problem Solving (42)
        • C++ (28)
        • Java (14)
      • ๐Ÿ“ Study (17)
        • React (1)
        • Java (16)
      • ๐Ÿ’ป CS (11)
        • ๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ (2)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)
      • ๐Ÿƒ‍โ™€๏ธ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    java
    makefile
    ํŠธ๋ฆฌ
    dfs
    .h
    C
    ๋งต
    ๋ฐฑํŠธ๋ž˜ํ‚น
    VR
    react
    BFS
    git
    github
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜
    ๋ฐฑ์ค€
    ์ •๋ ฌ
    CS
    42๊ฒฝ์‚ฐ
    CSS
    ๊ตฌํ˜„
    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    La Piscine
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
    swea
    knapsack
    dynamic programming
    HTML
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    unity
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
0=2.
[SWEA][Java] 5215. ํ–„๋ฒ„๊ฑฐ ๋‹ค์ด์–ดํŠธ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”