전공공부
[BOJ_2798] 블랙잭 본문
설명
블랙잭이 원래 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 |