Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
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
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_2798] 블랙잭 본문

Study/Problem Solving

[BOJ_2798] 블랙잭

monitor 2023. 11. 1. 06:34

설명


블랙잭이 원래 21까지 넘으면 안 되는 건 줄 알고 M 보다 크거나 같을 경우 분기처리를 했더니 많이 틀렸다.

 

코드


import java.io.*;
import java.util.*;
public class Main {
    static int N,M,ans;
    public static void main(String[] args) throws Exception{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer tk = new StringTokenizer(in.readLine()," ");

        N = Integer.parseInt(tk.nextToken());
        M = Integer.parseInt(tk.nextToken());
        ans = 0;

        tk = new StringTokenizer(in.readLine()," ");
        List<Integer> list = new ArrayList<>();
        for(int i = 0; i < N; i++){
            list.add(Integer.parseInt(tk.nextToken()));
        }
        go(list,0,0,0);
        System.out.println(ans);
    }
    private static void go(List<Integer> list,int idx,int cnt,int sum) {
        if(cnt == 3){
            if(sum > M){
                return;
            }else {
                ans = Math.max(ans, sum);
            }
            return;
        }
        if(idx >= N){
            return;
        }

        go(list,idx+1, cnt,sum); //선택 안 한 경우의 수
        go(list,idx+1, cnt+1,sum + list.get(idx)); //선택 한 경우의 수
    }
}

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_19532] 수학은 비대면강의입니다.  (1) 2023.11.03
[BOJ_2231] 분해 합  (1) 2023.11.02
[BOJ_4358] 생태학  (0) 2023.10.31
[BOJ_11279] 최대 힙  (1) 2023.10.30
[BOJ_2504] 괄호의 값  (1) 2023.10.29