int[] answer = new int[commands.length];
for (int i = 0; i < commands.length; i++) {}
int start = commands[i][0]; // 시작 위치
int end = commands[i][1]; // 끝 위치
int select = commands[i][2]; // 선택할 위치
int[] split = Arrays.copyOfRange(array, start-1, end); // 원본 배열,복사할 시작인덱스. 복사랄 끝 인덱스
시작 위치, 끝 위치, 선택할 위치를 지정
배열은 0부터 시작
[i, j k]
에서 시작 위치 i => 0번째(첫 번째 자리)
j => 1번째(두 번째 자리)
k => 2번째(세 번째 자리)
copyOfRange()
메서드를 사용하여 범위만큼 자른 배열을 split 배열에 복사
Arrays.copyOfRange(복사할 배열, 시작 지점(포함), 끝 지점(불포함))
시작 지점에서 -1을 하는 이유는
끝 지점은 포함되지 않으므로 -1을 하지 않아도 됨
Arrays.sort(split);
()
로 split의 배열을 정렬해줌answer[i] = split[select-1];
import java.util.Arrays; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; // i~j까지 자른 후 Arrays.sort -> array[k] 찾기 // 2~5 => 2,3,4,5 for (int i = 0; i < commands.length; i++) { int start = commands[i][0]; // 시작위치 int end = commands[i][1]; // 끝 위치 int select = commands[i][2]; // 선택할 위치 int[] split = Arrays.copyOfRange(array, start-1, end); // 원본 배열,복사할 시작인덱스. 복사랄 끝 인덱스 Arrays.sort(split); answer[i] = split[select-1]; } return answer; } }