이론/Data Structure , Algorithm
[210915] 백준 2798번 문제 풀이 / 블랙잭
6161990
2021. 9. 15. 17:10
문제의 핵心
1. 카드 중 3개씩 뽑는 모든 경우의 수 = n(n-1)(n-2) / 3! (팩토리얼) ex) C(5,3) = 5 x 4 x 3 / 3 x 2 x 1 = 10
2. 삼중 반복문을 통해 모든 경우의 수를 확인하기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Q2_2798 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[] arr = new int[N];
st = new StringTokenizer(br.readLine(), " ");
for(int i=0; i< N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
int result = 0;
int sum_value = 0;
for(int i=0; i<N; i++) {
for(int j=i+1; j<N; j++) {
for(int k=j+1; k<N; k++) {
sum_value = arr[i] + arr[j] + arr[k];
if(sum_value <= M) {
result = Math.max (result, sum_value);
}
}
}
}
System.out.println(result);
}
}