https://school.programmers.co.kr/learn/courses/30/lessons/181893#
이 문제는 index에서의 반례를 찾는 데 시간이 많이 걸렸다.
ArrayList에서 요소를 제거하면 list의 index 값에도 변화가 생기기 때문에 j값을 조절 해 주어야 한다. 다만, list의 맨 앞 요소를 지울 때에는 지우고 나서의 지운 것이 list의 0번 요소이므로 list.remove(0)을 query[i]번 만큼 반복해 주어야 한다.
import java.util.*;
class Solution {
public ArrayList solution(int[] arr, int[] query) {
ArrayList<Integer> list = new ArrayList<>();
for(int i=0; i<arr.length; i++){
list.add(arr[i]);
}
for(int i=0; i<query.length; i++){
if(i % 2 == 0){
int idx = query[i]+1;
for(int j=idx; j<list.size(); j++){
list.remove(j);
j--;
}
} else {
for(int j=0; j<query[i]; j++){
list.remove(0);
}
}
}
return list;
}
}