반복문 사용, Arrays.copyOfRange()를 통해 배열 복사
Arrays.sort() 이용 정렬
K번째 값을 쭉 저장
첫 풀이 : 인덱스 범위 오답
copyOfRange를 통해 배열을 복사하고 정렬해서 K번째 수 찾기
copyOfrange는 1 - 4 의 경우 2 3 만 출력 되니 전체 범위를 출력하고 싶어서
시작 인덱스를 -1 했음
for (int i = 0; i < commands.length; i++) {
for (int j = 0; j < commands.length; j++) {
if (commands[i][j] != 0) {
arr = Arrays.copyOfRange(array, i-1, j);
Arrays.sort(arr);
list.add(arr[commands[i-1][j]);
}
}
}
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for (int i = 0; i < commands.length; i++) {
int[] arr = Arrays.copyOfRange(array, commands[i][0] - 1, commands[i][1]);
Arrays.sort(arr);
answer[i] = arr[commands[i][2] - 1];
}
return answer;
}
하.. 이차원 배열 자체가 [i, j, k] 라는 형식으로 들어오는 것이였음
나는 K번째 라길래 [i][j] = k 인줄 알고 로직을 구현하고 있었는데...
문제에 대한 이해도를 높이는게 더 필요해보임
이 문제의 핵심은 오히려 정렬이 아닌 Arrays.copyOfRange() 였던듯