ffinn92 / Keep-at-solve-it

꾸준히 알고리즘 풀기 위한 스터디 저장소입니다.
2 stars 3 forks source link

[220711][BC][인프런](4-5) K번째 큰 수 #94

Closed honeySleepr closed 2 years ago

honeySleepr commented 2 years ago

📌 문제

⭐️ 아이디어

🤔 고민한 내용

💪 새롭게 배운 내용

🆘 이해가 어려운 내용

❌ 해결하지 못한 이유

✅ 본인 풀이

image

public class P0405 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] split = br.readLine().split("\\s");
        int n = Integer.parseInt(split[0]);
        int k = Integer.parseInt(split[1]);
        String[] split1 = br.readLine().split("\\s");
        int[] arr = new int[split1.length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.parseInt(split1[i]);
        }

        System.out.println(solution(k, arr));
    }

    private static int solution(int k, int[] arr) {
        TreeSet<Integer> set = new TreeSet<>(Comparator.reverseOrder());
        for (int i = 0; i < arr.length - 2; i++) {
            for (int j = i + 1; j < arr.length - 1; j++) {
                for (int l = j + 1; l < arr.length; l++) {
                    set.add(arr[i] + arr[j] + arr[l]);
                }
            }
        }
        if (set.size() < k) {
            return -1;
        }

        for (int i = 0; i < k - 1; i++) {
            set.pollFirst();
        }
        set.
        return set.first();
    }
}
/*
10 3
13 15 34 23 45 65 33 11 26 42
*/

참고한 자료