TreeSet으로 중복을 제거하고, descending 메소드로 정렬후에 k번째 요소를 출력해보자
🤔 고민한 내용
NavigableSet?을 써서 정렬하는거 같은데 몇번쨰 요소를 출력하는건 어떻게 하는거지...?!
💪 새롭게 배운 내용
n번째 요소 뽑는거는.. 허허 count를 추가하여 인덱스 개념을 수동으로 도입할 수 있는거였구나
TreeSet은 오름차순으로 정렬되지만, Collections.reverseOrder()을 적용하면 내림차순으로 적용된다.
🆘 이해가 어려운 내용
❌ 해결하지 못한 이유
새롭게 배운내용을 체크하지 못하였다.
✅ 본인 풀이(미완)
🏋️♀️ 시도횟수 : 0회 | ⏱ 걸린시간 : -ms | 💾 메모리 : -MB
import java.io.IOException;
import java.util.Scanner;
import java.util.TreeSet;
public class If405KthLargestNumber {
public int solution(int k, int[] numbers) {
TreeSet<Integer> ts = new TreeSet<>();
int sum = 0;
for (int i = 0; i < numbers.length - 2; i++) {
sum += numbers[i];
for (int j = i + 1; j < numbers.length - 1; j++) {
sum += numbers[j];
for (int l = j + 1; l < numbers.length; l++) {
sum += numbers[l];
ts.add(sum);
sum -= numbers[l];
}
sum -= numbers[j];
}
sum -= numbers[i];
}
ts.
NavigableSet<Integer> integers = ts.descendingSet();
int[] result = new int[ts.size()];
for (int i = 0; i < result.length; i++) {
result[i] = integers.
}
}
public static void main(String[] args) throws IOException {
If405KthLargestNumber T = new If405KthLargestNumber();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] numbers = new int[n];
for (int i = 0; i < n; i++) {
numbers[i] = sc.nextInt();
}
int result = T.solution(k, numbers);
System.out.println(result);
}
}
📌 문제
⭐️ 아이디어
🤔 고민한 내용
💪 새롭게 배운 내용
🆘 이해가 어려운 내용
❌ 해결하지 못한 이유
✅ 본인 풀이(미완)
🏋️♀️
시도횟수
: 0회 | ⏱걸린시간
: -ms | 💾메모리
: -MB참고한 자료