문제

문제를 해결하다
문제 자체는 간단한 문제입니다. 명령에 따라 배열에서 값을 복사하고 정렬한 후 원하는 인덱스 값만 추출하여 결과로 반환하는 문제입니다.
내 대답
public static int() solution(int() array, int()() commands) {
ArrayList<Integer> answer = new ArrayList<>();
List<Integer> collect = Arrays.stream(array).boxed().collect(Collectors.toList());
for (int() cmdArr : commands) {
int() a = new int(cmdArr(1) - cmdArr(0) + 1);
int index = 0;
for (int i = cmdArr(0) -1 ; i < cmdArr(1); i++) {
a(index++) = collect.get(i);
}
Arrays.sort(a);
answer.add(a(cmdArr(2) - 1));
}
return answer.stream().mapToInt(Integer::intValue).toArray();
}
다른 답변
배열 중간에 있는 값을 얻으려면 copyOfrange 함수를 사용합니다.
기억해 두었다가 다음에 사용하세요.
import java.util.Arrays;
class Solution {
public int() solution(int() array, int()() commands) {
int() answer = new int(commands.length);
for(int i=0; i<commands.length; i++){
int() temp = Arrays.copyOfRange(array, commands(i)(0)-1, commands(i)(1));
Arrays.sort(temp);
answer(i) = temp(commands(i)(2)-1);
}
return answer;
}
}