코딩테스트 고득점 Kit_정렬
🔥 K번째 수 🔥
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려한다.
배열 array,[i,j,k]를 원소로 가진 2차원배열 commands가 매개변수로 주어질 때, 결과를 배열에 담아 return하는 solution을 완성해보자
array | commands | return |
---|---|---|
[1, 5, 2, 6, 3, 7, 4] | [[2, 5, 3], [4, 4, 1], [1, 7, 3]] | [5, 6, 3] |
import java.util.Arrays;
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
//List<Integer>list = new ArrayList<>();
for(int i=0;i<commands.length;i++){
int[] n = Arrays.copyOfRange(array,commands[i][0]-1,commands[i][1]);
Arrays.sort(n);
answer[i] = n[commands[i][2]-1];
//list = Arrays.stream(n).boxed().collect(Collectors.toList());
//list.sort(Comparator.naturalOrder());
//answer[i] = list.get(commands[i][2]-1);
}
return answer;
}
}
주석이 많은 이유는 너무 쓸데없는 짓을 많이 했기 때문이다.
굳이 list로 바꾸지 않아도 되는 것을 바꿔서 문제를 해결해버려서 점수도 1점을 받았다.
제출하는데 급한것이 아니라 잘 짜여진 코드인지 한번 더 확인하고 제출해야겠다.
- Arrays.copyOfRange(oldArray, startIndex, endIndex)