정수 배열 arr
과 delete_list
가 있습니다. arr
의 원소 중 delete_list
의 원소를 모두 삭제하고 남은 원소들은 기존의 arr
에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.
package algorithm;
import java.util.ArrayList;
import java.util.List;
public class Solution {
// 배열 arr을 ArrayList에 담아주고
// delete_list와 비교하면서 값이 같으면 answer에 arr[i]값을 지워주기
public List solution(int[] arr, int[] delete_list) {
List<Integer> answer = new ArrayList<>();
for (int array: arr) {
answer.add(array);
}
for (int array : arr) {
for (int deleteList : delete_list) {
if (array == deleteList) {
answer.remove(Integer.valueOf(array));
//오류
//answer.remove(array);
}
}
}
return answer;
}
public static void main(String[] args) {
Solution array = new Solution();
System.out.println(array.solution(new int[]{293, 1000, 395, 678, 94}, new int[]{94, 777, 104, 1000, 1, 12}));
}
}
정해진 배열의 크기보다 크거나 음수 index에 대한 요청이 있으면 ArrayIndexOutOfBoundsException이 발생한다.
//에러
answer.remove(array); -> answer.remove(1000);
1000 > 배열의 크기=5
answer.remove(Integer.valueOf(array)); -> answer.remove(arr[1]);