import java.util.*;
class Solution {
public int[] solution(int[] arr, int[] query) {
for(int i=0; i<query.length; i++){
if(i % 2 == 0){
arr = Arrays.copyOfRange(arr, 0, query[i]+1);
} else{
arr = Arrays.copyOfRange(arr, query[i], arr.length);
}
}
return arr;
}
}
해당 문제는 동일한 배열을 계속 사용하면서 자르고 저장하는 행위를 반복해야한다.
처음에는 answer
라는 배열이 주어져서 0부터 해당 인덱스까지 반복해서 저장해주는
코드를 작성했으나 런타임 에러 가 발생해서 다른 방법을 찾기로 했다
배열의 일부분을 복사하여 새로운 배열을 만드는 메소드 함수
Arrays.copyOfRange() 를 사용하였다
Arrays.copyOfRange(
복사할 원본 배열
,복사할 시작 인덱스
,복사할 종료 인덱스+1
)
💡복사할 종료 인덱스+1
을 해주는 이유는 해당 인덱스 이전까지만 복사해주기 때문!
짝수의 경우
0부터 query[i]
+1 까지
홀수의 경우
query[i]
부터 배열의 마지막 인덱스까지(배열.length
)