문제: https://school.programmers.co.kr/learn/courses/30/lessons/120854
✅ 내 코드
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int index = 0;
int[] answer = new int[num2 - num1 + 1]; // 배열의 크기 지정
for (int i = num1; i <= num2; i++) {
answer[index] = numbers[i]; // 여기서 값을 받기 위해 새로운 배열을 생성했음
index++;
}
return answer;
}
}
✅ 다른풀이(1) (코드 간결화)
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2 - num1 + 1];
for (int i = num1; i <= num2; i++) {
answer[i -num1] = numbers[i];
}
return answer;
}
}
✅ 다른풀이(2)
import java.util.*;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
return Arrays.copyOfRange(numbers, num1, num2 + 1);
}
}
📌 copyOfRange()
java.util.Arrays.copyOfRange() 메서드는 Java에서 배열의 특정 구간을 복사하여 새로운 배열을 생성하는 기능을 제공하는 메서드이다.
public static T[] copyOfRange(T[] original, int from, int to)
✔ original 배열에서 from 인덱스부터 to 인덱스까지의 구간을 새로운 배열로 복사하여 반환하며, 반환되는 배열의 길이는 (to - from)
이다.
from = 이상 ( from(인덱스 값) <= x)to = 미만( x < to(인덱스 값))