
import java.util.*;
class Solution {
public int[] solution(int[] num_list, int n) {
return Arrays.copyOfRange(num_list, n-1, num_list.length);
}
}
Arrays.copyOfRange() 메서드는 배열의 부분을 복사하여 새로운 배열을 생성한다.
사용법 : Arrays.copyOfRange(원본 배열, 복사를 시작할 인덱스, 복사를 종료할 인덱스)

import java.util.*;
class Solution {
public int[] solution(int[] num_list, int n) {
int[] part1 = Arrays.copyOfRange(num_list, n, num_list.length);
int[] part2 = Arrays.copyOfRange(num_list, 0, n);
int[] result = new int[part1.length + part2.length];
System.arraycopy(part1, 0, result, 0, part1.length);
System.arraycopy(part2, 0, result, part1.length, part2.length);
return result;
}
}
System.arraycopy는 배열을 복사하여 합칠 때 유용하게 쓰인다.
사용법 : System.arraycopy(원본 배열, 원본 배열에서 복사 시작 인덱스, 대상 배열, 대상 배열에서 복사 시작 인덱스, 복사할 요소의 개수)

import java.util.*;
class Solution {
public String[] solution(String[] str_list) {
String[] answer = {};
for (int i = 0; i < str_list.length;i++) {
if (str_list[i].equals("l")) {
return Arrays.copyOfRange(str_list, 0, i);
} else if (str_list[i].equals("r")) {
return Arrays.copyOfRange(str_list, i + 1, str_list.length);
}
}
return answer;
}
}
이 문제는 l과 r을 기준으로 l이 나온다면 l 왼쪽을 리턴 r이 나온다면 r 오른쪽을 리턴하는 문제

import java.util.*;
class Solution {
public int[] solution(int[] num_list, int n) {
return Arrays.copyOfRange(num_list, 0, n);
}
}

class Solution {
public int[] solution(int[] num_list, int n) {
int[] answer = new int[(num_list.length + n - 1) / n];
int index = 0;
for (int i = 0; i < num_list.length; i += n) {
answer[index++] = num_list[i];
}
return answer;
}
}