[Programmers]-K번째수(정렬)

문제

“코딩테스트 고득점 Kit - 정렬” 문제이다.

코드

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[] arr=Arrays.copyOfRange(array,commands[i][0]-1,commands[i][1]);
            Arrays.sort(arr);
            answer[i]=arr[commands[i][2]-1];
        }
        return answer;
    }
}

다시푼 코드

import java.util.ArrayList;
import java.util.Collections;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        ArrayList<Integer> list = new ArrayList<>();
        
        for(int i=0;i<commands.length;i++){
            for(int j=commands[i][0]-1;j<commands[i][1];j++){
                list.add(array[j]);
            }
            Collections.sort(list);
            answer[i] = list.get(commands[i][2]-1);
            list.clear();
        }
        return answer;
    }
}

요약

다시푼 코드가 2배이상 빨랐다.

뭐때문이지. 동적할당?

ArrayList로 자른배열을 담아 컨트롤했다.