Algorithm/문제

35. K번째 큰 수 (TreeSet)

챛채 2023. 9. 6. 15:12

import java.util.*;

public class Main {

    public int solution(int n, int k, int[] arr) {
        int answer =-1;
        TreeSet<Integer> Tset = new TreeSet<>(Collections.reverseOrder());//TreeSet의 원소는 Integer
        /*
        * Collection.reverseOrder()없으면 기본으로 오름차순으로 정렬됨
        * 쓰면 내림차순
        * */
        //무조건 3장이므로 for문 사용
        for (int i = 0; i < n; i++) {
            for (int j = i + 1; j < n; j++) {//i+1 : 중복하면 안되기 때문에 i뒤부터 돌아야함
                for (int l = j + 1; l < n; l++) {
                    Tset.add(arr[i] + arr[j] + arr[l]); //값추가
                }
            }
        }
        int cnt=0;
        for (int x : Tset) {
            cnt++;
            if(cnt ==k) return x;
        }
        return answer; //-1 리턴
    }
   public static void main(String[] args){
       Main T = new Main();
       Scanner kb = new Scanner(System.in);
       int n = kb.nextInt();
       int k = kb.nextInt();
       int [] arr = new int[n];
       for (int i = 0; i < n; i++) {
           arr[i] = kb.nextInt();
       }
       System.out.println(T.solution(n, k, arr));
   }
}