brute-force 기법을 이용하여 푸는 것이므로 for문의 i, j, k의 범위만 적절히 조절해준 후 M이 넘지 않는 선에서 max값을 찾으면 된다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] input = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int N = input[0];
int M = input[1];
input = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int max = 0;
for (int i = 0; i < input.length - 2; i++) {
for (int j = i + 1; j < input.length - 1; j++) {
for (int k = j + 1; k < input.length; k++) {
int sum = input[i] + input[j] + input[k];
if (sum > max && sum <= M) max = sum;
}
}
}
System.out.println(max);
}
}
'백준' 카테고리의 다른 글
[Java] 백준 1436번 - 영화감독 숌 (0) | 2023.07.05 |
---|---|
[Java] 백준 1018번 - 체스판 다시 칠하기 (0) | 2023.07.05 |
[Java] 백준 24313번 - 알고리즘 수업 - 점근적 표기 1 (0) | 2023.07.02 |
[Java] 백준 24267번 - 알고리즘 수업 - 알고리즘의 수행 시간 6 (0) | 2023.07.02 |
[Java] 백준 24266번 - 알고리즘 수업 - 알고리즘의 수행 시간 5 (0) | 2023.07.01 |