정수 배열 arr와 query가 주어집니다. query를 순회하면서 다음 작업을 반복합니다. 짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다. 홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다. 위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요.
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int[] arr, int[] query) {
List<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 ||i==0 ){
if(query[i]+1==list.size()-1){
list.remove(list.size()-1);
}else if(query[i]+1==list.size()){
//뺄 수가 없을떄
}
else {
list.subList(query[i]+1, list.size()).clear();
}
}else if(i%2==1) {
if(query[i]==1){
list.remove(0);
}else if(query[i]==0){
//뺄수가 없을때;
}
else {
list.subList(0, query[i]).clear();
}
}
}
int[] answer = new int[list.size()];
for (int i = 0; i < list.size() ; i++) {
answer[i]=list.get(i);
}
return answer;
}
}
와.... 너무 빡셌다.... clear() 대신 removeAll 를 계속 쓰다가 안됐었다....
결국 clear() 로 바꾸고 나니 문제가 해결돼었다.
removeAll 에 리스트를 넣을때 만약 list 에 그거랑 같은수가 있으면 싹다 지워지는 원리 땜에
오류가 자꾸났었다....
결국 clear 로 내가 원하는 부분만 지우게 해서 풀었다.