알고리즘

[Java] SWEA - Spot Mart

J3SUNG 2023. 2. 14. 22:23
728x90

들 수 있는 무게가 주어지고 최대 2개 들 수 있을 때 최대 들 수 있는 무게량을 구하는 문제입니다.

2차원 for문을 사용해서 모든 경우를 탐색한 후 가장 큰 무게값을 출력해주었습니다.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
 
class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int t = Integer.parseInt(br.readLine());
        for(int tc=0; tc<t; ++tc) {
            int ans = 0;
            StringTokenizer st = new StringTokenizer(br.readLine());
            int n = Integer.parseInt(st.nextToken());
            int m = Integer.parseInt(st.nextToken());
            int[] arr = new int[n];
            st = new StringTokenizer(br.readLine());
            for(int i=0; i<n; ++i) {
                arr[i] = Integer.parseInt(st.nextToken());
            }
            for(int i=0; i<n; ++i) {
                for(int j=i+1; j<n; ++j) {
                    if(m >= arr[i] + arr[j]) {
                        ans = Math.max(ans, arr[i] + arr[j]);
                    }
                }
            }
            ans = ans==0?-1:ans;
            bw.write("#" + (tc+1) + " " + ans + "\n");
        }
        bw.close();
    }
}