부르트 포스(완전 탐색)
- 가능한 합의 가짓수를 모두 계산해서, M과 미만의 최대값을 구한다.
- 3개의 중첩 반복문 사용
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int max = 0;
int[] card = new int[n];
st = new StringTokenizer(br.readLine(), " ");
for(int i=0; i<n; i++) {
card[i] = Integer.parseInt(st.nextToken());
}
int sum = 0;
for(int i=0; i<n-2; i++) {
for(int j=i+1; j<n-1; j++) {
for(int k=j+1; k<n; k++) {
sum = card[i]+card[j]+card[k];
if(m >= sum) {
if(sum > max) max = sum;
}
}
}
}
bw.write(max+"");
bw.flush();
bw.close();
br.close();
}
}