문제

정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

내 풀이

단순하게 정렬 후 5번째부터 담았다.

public int[] solution(int[] num_list) {
    int[] answer = new int[num_list.length - 5];
    Arrays.sort(num_list);
    for (int i = 5, j = 0; i < num_list.length; i++, j++) {
        answer[j] = num_list[i];
    }
    return answer;
}

다른사람 풀이

배열복사를 이용했다.
Arrays.copyOfRange( A, 시작인덱스, 마지막인덱스);

   answer = Arrays.copyOfRange(num_list,5,num_list.length);

오랜만에 문제를 풀다보니 배열 복사를 잊고 있었다.!!
이렇게풀수도있다.
System.arraycopy(원래배열, 원래배열시작INDEX, 새배열, 새배열시작INDEX, 복사할개수);

  System.arraycopy(num_list, 5, answer, 0, num_list.length - 5);

+ Recent posts