K번째 숫자

문제



문제를 해결하다

문제 자체는 간단한 문제입니다. 명령에 따라 배열에서 값을 복사하고 정렬한 후 원하는 인덱스 값만 추출하여 결과로 반환하는 문제입니다.


내 대답

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;
    }
}