내풀이
import java.util.*;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
List<Integer> arr = new ArrayList<>();
for(int i=num1; i<=num2; i++){
arr.add(numbers[i]);
}
return arr.stream().mapToInt(n->n).toArray();
}
}
다른사람풀이
import java.util.*;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
return Arrays.copyOfRange(numbers, num1, num2 + 1);
}
}
copyOfRange
Java의 Arrays.copyOfRange() 메서드는 배열의 특정 범위를 복사하여 새로운 배열을 생성하는 메서드입니다.
Arrays.copyOfRange(원본배열, 시작인덱스, 끝인덱스);
🔹 매개변수 설명
- 원본배열: 복사할 원본 배열
- 시작인덱스: 복사를 시작할 인덱스 (포함)
- 끝인덱스: 복사를 끝낼 인덱스 (포함되지 않음) → 즉,
끝인덱스 - 1
까지 복사됨
예제
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] original = {10, 20, 30, 40, 50};
// 1번 인덱스부터 3번 인덱스까지 복사 (3번은 포함되지 않음)
int[] copy = Arrays.copyOfRange(original, 1, 3);
System.out.println(Arrays.toString(copy)); // 출력: [20, 30]
}
}