문제
정수 배열 
arr와 query가 주어집니다.query를 순회하면서 다음 작업을 반복합니다.- 짝수 인덱스에서는 arr에서query[i]번 인덱스를 제외하고 배열의query[i]번 인덱스 뒷부분을 잘라서 버립니다.
- 홀수 인덱스에서는 arr에서query[i]번 인덱스는 제외하고 배열의query[i]번 인덱스 앞부분을 잘라서 버립니다.
위 작업을 마친 후 남은 
arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요.제한사항
- 5 ≤ arr의 길이 ≤ 100,000
- 0 ≤ arr의 원소 ≤ 100
- 1 ≤ query의 길이 < min(50,arr의 길이 / 2)
- query의 각 원소는 0보다 크거나 같고 남아있는- arr의 길이 보다 작습니다.
예시

풀이
arr[]를 answer[]로 옮겨서 코딩하였다. 해당 문제의 핵심 문법은Arrays.copyOfRange()이다. 이 문법의 사용법은 Arrays.copyOfRange(배열변수명, 시작, 끝)이며 이 문법을 사용하면 내가 선택한 시작~끝까지만 배열을 남기는 문법이다.
예시로는 int[] arr = {1,2,3,4,}가 있다. Arrays.copyOfRange(arr, 1,2) 라고 하였을 때 arr에 index[1]~index[2] 까지만 남을 것이다. 결과는 {2,3} 만 남는다.
Arrays.copyOfRange 문법을 이용하여 내가 원하는 만큼의 index만 남기는 것이 핵심이다.if문을 사용하여 홀수의 index이면 뒷부분이 없어지게, 짝수의 index면 앞부분이 없어지게 설계하였다.import java.util.Arrays;
class Solution {
    public int[] solution(int[] arr, int[] query) {
        int[] answer = arr;
         for (int i = 0; i < query.length; i++) {
            if (i % 2 == 0) { // 짝수일 경우
                answer = Arrays.copyOfRange(answer, 0, query[i] + 1);
            } else {
                answer = Arrays.copyOfRange(answer, query[i], answer.length);
            }
        }
        return answer;
    }
}Share article