정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
import java.util.*;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2];
answer = Arrays.copyOfRange(numbers, num1, num2 + 1);
return answer;
}
}
copyOfRange()를 이용하여 numbers의 num1 ~ num2 범위까지를 새 배열 answer에 복사해주었다.
to 범위는 -1이 되기에 num2까지 출력하기 위해 num2 + 1 을 해주어야한다.
제목이 배열 자르기라 자르고 붙일 생각을 했는데 출력할 부분이 배열 속에서 이어지니 복사를 통해 쉽게 구현할 수 있었다.
copyOfRange
배열의 일부분을 새로운 배열로 복사하는 데 사용되는 Java의 배열 복사 메소드
import java.util.Arrays;
public class CopyOfRangeExample {
public static void main(String[] args) {
int[] originalArray = {1, 2, 3, 4, 5};
int[] newArray = Arrays.copyOfRange(originalArray, 1, 4);
System.out.println(Arrays.toString(newArray));
}
}
이를 실행하면 newArray는 [2, 3, 4]가 된다.
=> Arrays.copyOfRange 메소드는 original 배열에서 from 인덱스부터 to - 1 인덱스까지의 요소를 새로운 배열로 복사하여 반환하기 때문