문제 설명
정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
1 ≤ arr의 길이 ≤ 100 1 ≤ arr의 원소 ≤ 1,000 arr의 원소는 모두 서로 다릅니다. 1 ≤ delete_list의 길이 ≤ 100 1 ≤ delete_list의 원소 ≤ 1,000 delete_list의 원소는 모두 서로 다릅니다.
나의 코드
import java.util.*;
class Solution {
public int[] solution(int[] arr, int[] delete_list) {
List<Integer> list = new ArrayList<>();
for(int i=0; i<arr.length; i++) {
list.add(arr[i]);
}
for(int i=0; i<delete_list.length; i++) {
if(list.contains(delete_list[i])) {
list.remove(Integer.valueOf(delete_list[i]));
}
}
int[] answer = new int[list.size()];
for(int i=0; i<list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
느낀 점
배열은 크기가 정해져 있으므로 삭제가 되지 않는다. 따라서, 주어진 배열 arr
를 먼저 list
로 변환한 후, delete_list
를 반복문을 통해 돌면서 해당 원소값이 list
에 존재하는 경우 remove()
와 Integer.valueOf()
를 활용하여 그 정수값을 가지면 삭제하였다. 마지막으로 다시 List
값을 문제에서 원하는 int
배열 값으로 변환해주면 되겠다.