정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
- 2 ≤ numbers의 길이 ≤ 30
- 0 ≤ numbers의 원소 ≤ 1,000
- 0 ≤num1 < num2 < numbers의 길이
numbers num1 num2 result [1, 2, 3, 4, 5] 1 3 [2,3,4,] [1, 3, 5] 1 2 [3, 5]
- [1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]를 return 합니다.
- [1, 3, 5]의 1번째 인덱스 3부터 2번째 인덱스 5까지 자른 [3, 5]를 return 합니다.
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2 - num1 +1];
int index = 0;
for(int i = num1; i<=num2; i++){
answer[index] = numbers[i];
index++;
}
return answer;
}
}
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;
}
}
import java.util.*;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
return Arrays.copyOfRange(numbers, num1, num2 + 1);
}
}
풀다가 막혀서 다른 코드를 참고하여 제출했는데 첫번째 풀이코드가 원래 내가 생각하는 코드인데 굳이 index를 설정하지 않고 할 수 있는 방법을 찾았다. 두번째 코드는 한줄 코드로 아직 내가 arrays 공부가 부족한 거 같다. 다시 공부해야겠다..🥲
Array.copyOf
Arrays의 메서드를 활용하여 배열을 복사
Array.copyOfRange
자신이 복사하고자 하는 배열의 범위만 지정해서 복사