https://school.programmers.co.kr/learn/courses/30/lessons/42748/questions
import java.util.TreeSet;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int [] answer = new int[commands.length];
int j = 0;
// 1. i번째부터 j번째까지 자른 treeSet 생성
for(int[] num : commands){
TreeSet<Integer> treeset = new TreeSet<>();
for(int i = num[0]-1 ; i < num[1] ; i++){
// 2. treeSet에 값 추가 (자동 정렬)
treeset.add(array[i]);
}
// 3. 생성한 배열의 k번째 값을 담은 배열
int count = 0;
for (int x : treeset){
if(++count == num[2]){
answer[j++] = x;
}
}
}
// 4. 결과값 return
return answer;
}
}
정렬 > TreeSet
을 떠올려서 사용했는데, Set의 특성 상 중복 숫자를 저장하지 못해서 오류가 발생했다.
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int [] answer = new int[commands.length];
int j = 0;
// 1. i번째부터 j번째까지 자른 배열 생성
for(int[] num : commands){
int k = 0;
int temp[] = new int [num[1] - num[0] + 1];
for(int i = num[0]-1 ; i < num[1] ; i++){
// 2. 배열에 값 추가
temp[k++] = array[i];
}
// 3. 값 정렬
Arrays.sort(temp);
// 4. 생성한 배열의 k번째 값을 담은 배열
answer[j++] = temp[num[2]-1];
}
// 5. 결과값 return
return answer;
}
}
잘 봤습니다. 좋은 글 감사합니다.