728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181844
문제설명
정수 배열 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의 원소는 모두 서로 다릅니다.
풀이
추가할때 검사를 하면 되는 문제지만 n^2 +n이 되기 싫어 3n으로 설계하였습니다
여기서 중요한건 remove였는데 remove는 1.인덱스로 삭제 2. 해당 값(객체)과 동일한 내용 삭제
그래서 int가 아닌 Integer로 변경하여 값으로 인식하게 하였습니다.
import java.util.*;
class Solution {
public int[] solution(int[] arr, int[] delete_list) {
List<Integer> list = new ArrayList<Integer> ();
for(int a : arr){
list.add(a);
}
for(int del : delete_list){
if(list.contains(del)){
list.remove(Integer.valueOf(del)); // del을 인덱스가 아닌 값으로 인식하게 한다
}
}
int[] answer = new int[list.size()];
for(int i=0; i<answer.length;i++){
answer[i]=list.get(i);
}
return answer;
}
}
들어간 메소드 정리
List.remove(int a ) : 해당하는 인덱스 a에 있는 값을 지운다
List.remove(Object a ) : 해당하는 객체를 지운다
List.contains(a) : a가 있는지 없는지 확인
728x90
'==4. 프로그래머스 & 코테문제== > Java 문제 풀이' 카테고리의 다른 글
[Java/프로그래머스 LV.1] 콜라츠 추측 (2) | 2024.09.26 |
---|---|
[Java/프로그래머스 LV.1] 두 정수 사이의 합 (0) | 2024.09.19 |
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/문자열을 정수로 변환하기 (0) | 2024.08.03 |
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (0) | 2024.07.23 |
[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/ ad 제거하기 (0) | 2024.07.22 |
댓글