문제 링크
k번째 수
풀이
class k번째수 {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
int i = 0;
for(int[] arr : commands){
int[] copyOfRange = Arrays.copyOfRange(array, arr[0] -1 , arr[1]);
Arrays.sort(copyOfRange);
answer[i] = copyOfRange[arr[2] - 1];
i++;
}
return answer;
}
}
소감
- 최근에 공부한
Arrays
덕분에 쉽게 풀었다.
copyOfRange
함수를 통해서 아주 쉽게 잘라낼 수 있었지만, 해당 함수에서 잘라내는 범위가 arr[start] 부터, arr[end -1] 까지 라는 것을 잘 유의해야한다.
- 2차원 배열인
commands
에 대해서 길이를 계산할때 잘못해서 commands[0].length
로 하고 있어서 아주 오랜 시간이 걸렸다... ^^ 주어진 테스트 케이스에 대해서는 성공했지만, 나중에 히든 테스트 케이스에서 탈탈 털렸기 때문 ㅎㅎ 주의하자.