[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로 자른배열을 담아 컨트롤했다.