프로그래밍/Algorithm

[프로그래머스] K번째 수

Jay22 2018. 10. 21. 20:53
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.*;
 
class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        int [] temp = {};
 
        for(int i =0;i < commands.length;i++) {
            temp = Arrays.copyOfRange(array,commands[i][0]-1,commands[i][1]);
            Arrays.sort(temp);
            answer[i]=temp[commands[i][2]-1];
        }
        return answer;
    }
}
 
cs


배열을 slice해서 새로운 배열에 할당하는 메소드인 copyOfRange를 썼다. 주의할 점은 3번째 인자는 exclusive인 것이다. 이것을 못 알아챘었다. 그리고 2차원 배열의 길이를 구하는데 commands.length로 해야지 행의 갯수 즉 2차원 배열에 할당된 배열 갯수가 나오는데 commands[0].length로 해버려서 틀려버렸다. 저런식으로 하면 열의 갯수가 나온다. 이런 기본적인 부분을 숙지 하지 못하니 푸는 방법을 생각해 내도 원하는 답을 구할 수 없다. 항상 기본이 중요하다. 게다가 test case에는 3x3 배열이 나와버려서 저렇게 length를 구해도 통과가 된것이다.... 정말 사소한 부분 까지 교묘하다.  

반응형