https://school.programmers.co.kr/learn/courses/30/lessons/181844#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
정수 배열 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의 원소는 모두 서로 다릅니다.
입출력 예
입출력 예 설명
입출력 예 #1
예제 1번의 arr의 원소 중 1000과 94가 delete_list에 있으므로 이 두 원소를 삭제한 [293, 395, 678]을 return 합니다.
입출력 예 #2
예제 2번의 arr의 원소 중 delete_list에 있는 원소는 없습니다. 따라서 arr 그대로인 [110, 66, 439, 785, 1]을 return 합니다.
👉 풀이과정
이런저런 방법을 사용하다가 가장 간단한 방법을 발견한 듯하다!
Integer타입 list를 생성해 주고 arr을 넣어준다.
배열은 int타입이고, list는 Integer인데 어떻게 넣어요???????? 할 수 있는데
박싱이 되어(자동 형변환) Integer로 넣어준다!
단, 아래에 나오는 remove는 list에 접근하여 일치하는 값을 삭제하는 메서드로
delete가 int형이므로 오류가 난다. 그래서 (Integer) 해준 것!
📌 제출코드
import java.util.*;
class Solution {
public int[] solution(int[] arr, int[] delete_list) {
ArrayList<Integer> list = new ArrayList<>();
for(int n : arr){
list.add(n);
}
for(int delete : delete_list){
list.remove((Integer)delete);
}
int[] answer = new int[list.size()];
for(int i=0;i<list.size();i++){
answer[i]=list.get(i);
}
return answer;
}
}
'코딩테스트 > JAVA' 카테고리의 다른 글
[JAVA/백준 1009번] 분산처리 (1) | 2024.02.18 |
---|---|
[JAVA/프로그래머스] A로 B 만들기 (0) | 2024.02.15 |
[JAVA/프로그래머스] 저주의 숫자 3 (0) | 2024.02.07 |
[JAVA/프로그래머스] 외계어 사전 (2) | 2024.02.04 |
[JAVA/프로그래머스] 문자열 밀기 (0) | 2024.02.03 |