UpDown Dev Story
알고리즘 연습 - K번째 큰 수 ( TreeSet ) 본문
아래 강의를 보면서 연습하고 기록하고 있습니다
문제
코드
import java.util.*;
class Main {
public int solution(int[] arr, int n, int k) {
int answer = -1;
TreeSet<Integer> Tset = new TreeSet<>(Collections.reverseOrder()); // 중복이 없고 정렬된 TreeSet 선언
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int l = j + 1; l < n; l++) {
Tset.add(arr[i] + arr[j] + arr[l]); // 3장을 뽑을수있는 모든 경우를 기록
}
}
}
int cnt = 0;
//Tset.remove(143);
//System.out.println(Tset.size());
//System.out.println("first : "+ Tset.first());
//System.out.println("last : "+ Tset.last());
for (int x : Tset) { // k번째 값을 가져오기위해
//System.out.println(x);
cnt++;
if (cnt == k)
return x;
}
return answer;
}
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(arr, n, k));
}
}
'Algorithm' 카테고리의 다른 글
후위식 연산 (Stack) (0) | 2021.07.06 |
---|---|
아나그램 (HashMap) (0) | 2021.07.05 |
알고리즘 연습 - 학급회장(HashMap) (0) | 2021.06.23 |
알고리즘 연습 - 공통원소구하기( Two Pointers ) (0) | 2021.06.23 |
알고리즘 연습 - 두 배열 합치기 (0) | 2021.06.22 |
Comments