Solution 1) 내 풀이
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
public int[] solution(int[] arr, int[] delete_list) {
List<Integer> list = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
boolean isMatch = false;
for (int j = 0; j < delete_list.length; j++) {
if (arr[i] == delete_list[j]) {
isMatch = true;
}
}
if (!isMatch) {
list.add(arr[i]);
}
}
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
코드 및 문제 리뷰
arr배열이 주어지고 delete_list 배열이 주어진다. delete_list 배열이 있는 수가 arr 배열에 있다면 그 수를 지운 후 arr 배열의 기존 순서를 유지하여 반환하는 문제이다.
나는 List를 이용해 풀었다. 실제로 배열에서 delete_list의 수를 지운 후 반환을 할까 했는데, 문제를 다시 생각해보니 지우지 않고 되레 delete_list 배열에 있는 요소를 제외한 요소를 반환하면 되는 문제였다.
boolean isMatch를 만들어 일치하는 수가 있다면 continue (지금 보니 continue를 안넣었다. 넣었으면 더 좋았을 것.), 아니라면 list에 추가한다. 이후 배열형태로 반환.