728x90
문제
https://www.acmicpc.net/problem/2798
접근 방법
1. N개의 카드 중에서 3장을 골라서 M이랑 같거나 작되 제일 가까운 수를 만드는 문제입니다.
2. 카드의 수는 최대 100개이므로 완전탐색을 돌려도 가능하다는 생각을 했습니다.(O^3)
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
private static StringBuilder sb;
private static BufferedReader br;
private static StringTokenizer st;
private static int N,M;
private static int[] arr;
private static int sum = 0;
//입력
public static void input() throws Exception {
br = new BufferedReader(new InputStreamReader(System.in));
sb = new StringBuilder();
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
arr = new int[N];
st = new StringTokenizer(br.readLine());
for(int i = 0 ; i < N ; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
}
//실행
public static void process() {
for(int i = 0 ; i < N ; i++){
for(int j = 0 ; j < N ; j++){
if(i==j) continue;
for(int k = 0 ; k < N ; k++){
if( i==k || j==k || i==k) continue;
if(arr[i]+arr[j]+arr[k] <= M){
sum = Math.max(sum,arr[i]+arr[j]+arr[k]);
}
}
}
}
System.out.println(sum);
}
public static void main(String[] args) throws Exception {
input();
process();
}
}
'코딩테스트 > 백준' 카테고리의 다른 글
[Java] 백준 2869번 : 달팽이는 올라가고 싶다 (0) | 2024.05.03 |
---|---|
[Java] 백준 2839번 : 설탕 배달 (0) | 2024.05.03 |
[Java] 백준 2775번 : 부녀회장이 될테야 (0) | 2024.05.02 |
[Java] 백준 2751번 : 수 정렬하기 2 (0) | 2024.05.02 |
[Java] 백준 2609번 : 최대공약수와 최소공배수 (0) | 2024.05.02 |