정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.
public static int[] solution(int[] arr, int[] delete_list) {
int sum=0;
for(int i =0; i<arr.length; i++){
for(int k=0; k<delete_list.length;k++){
if(arr[i]==delete_list[k]){
sum++;
}
}
}
int e=0;
int[] answer = new int[arr.length-sum];
for(int i=0; i<arr.length;i++){
int t=0;
for(int k=0; k<delete_list.length;k++){
if(arr[i]==delete_list[k]){
t=1;
continue;
}
}
if(t != 1){
answer[e]=arr[i];
e++;}
}
return answer;
}
이번엔 좀 복잡? 하다. 일단 배열이니까 먼저 그 배열의 크기를 알아야해서 배열 2개에서 중복되는
개수를 찾고 그만큼을 빼서 정답 배열의 길이를 구했고
이중 for문을 통해서 만약 안에 있는 for 문에서 공통된 원소가 있어서 변수 t 가 1 로 변하면
정답 배열에 그 수가 있으면 안되 기에 맨 마지막 if 문에 t 가 1이 아닐때만 배열에 값을 추가해주도록 했다
암튼 이렇게 풀면된다.
끝!!!!!
'자바 알고리즘 문제' 카테고리의 다른 글
| 순서 바꾸기 (0) | 2023.10.02 |
|---|---|
| 0 떼기 (0) | 2023.10.02 |
| A 강조하기 (0) | 2023.09.29 |
| 5명씩 나눠서 맨 앞 한명 뽑기 (0) | 2023.09.29 |
| 문자열 바꿔서 찾기 (0) | 2023.09.29 |