

풀이
- 세장의 카드를 고르기 때문에 각 반복문의 고르는 조건을 고려하면 되는 문제
- 지금 코드처럼 정렬을 하고 고르면 훨씬 더 빨리 찾을거라고 생각했는데 정렬을 하지 않고 해도 비슷한 시간이 걸렸다. 조건에 유의하자

package problem_solving.bruteForce;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class BaekJoon_2798 {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.next());
int m = Integer.parseInt(sc.next());
Integer [] arr = new Integer[n];
for(int i= 0 ; i < arr.length ; i++ ) {
arr[i] = Integer.parseInt(sc.next());
}
Arrays.sort(arr, Collections.reverseOrder());
int answer = 0 ;
mainFor:for(int i= 0; i < arr.length-2;i++) {
for(int j = i+1 ; j < arr.length-1 ; j++) {
for(int k = j+1 ; k < arr.length; k ++ ) {
if( arr[i]+arr[j]+arr[k] == m ) {
answer = arr[i]+arr[j]+arr[k];
break mainFor ;
}
if( answer < arr[i]+arr[j]+arr[k] && arr[i]+arr[j]+arr[k] <m ) {
answer = arr[i]+arr[j]+arr[k] ;
}
}
}
}
System.out.println(answer);
}
}