아이디어 :
1. 경우의 수를 구하는 방법을 고려해 반복문의 범위를 생각해 보자
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
// 배열 A와 숫자 n을 입력받는다.
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int arr[] = new int[N];
int ansMax = 0;
// 조건을 만족하는 여러개의 ans 중 가장 큰 값을 저장
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
// 입력받은 숫자를 배열에 저장.
//N장의 카드 중 3장의 카드를 뽑는 경우의 수를 생각해 보자
// N * (N-1) * (N-2)이다. 이 방법을 활용한다.
for (int i = 0; i < N - 2; i++) {
// 3번째로 뽑기 때문에 N-2까지 반복
for (int j = i + 1; j < N - 1; j++) {
// 2번째로 뽑기에 N-1까지 반복
for (int k = j + 1; k < N; k++) {
int ans = arr[i] + arr[j] + arr[k];
if ((ans) <= M) {
ansMax = Math.max(ans, ansMax);
k번째 반복문을 통해 ans중 가장 큰 값을 ansMax에 저장한다.
}
}
}
}
System.out.print(ansMax);
}
}'java' 카테고리의 다른 글
| 백준 19532 수학은 비대면강의입니다. 자바 java (0) | 2024.01.16 |
|---|---|
| 백준 2231 분해합 java 자바 (0) | 2024.01.16 |
| 백준 24313 자바 java (1) | 2024.01.15 |
| 백준 3009 네 번째 점 (0) | 2024.01.12 |
| 백준 1085 직사각형 탈출 자바 java (0) | 2024.01.12 |