알고리즘
[프로그래머스] Lv.0 배열의 원소 삭제하기
cmkoi1
2023. 9. 19. 01:54
문제
과정
1. 배열 arr와 배열 delete_list의 요소를 하나씩 비교
1-1. 배열 arr의 0번 인덱스와 배열 delete_list의 0번부터 끝까지 비교하는 방식으로
2. 비교해서 같다면 배열 arr의 해당 인덱스 삭제
여기서 출력할 값을 넣을 배열의 크기를 판단할 수 없는 상태이기 때문에, 동적으로 크기를 할당해 주어야 한다.
"ArrayList"
- Collection 프레임워크의 일부이며 java.util 패키지에 소속.
- 일반 배열과 다르게 크기가 가변적이다. -> 동적 할당
- 배열은 빈 공간을 허용하지만, ArrayList는 빈 공간을 허용하지 않는다.
- .add()로 추가, .remove()로 삭제가 가능하다.
- 배열과 동일하게 인덱스가 사용 가능하다. ex) arr[0]
//선언하는 방법
ArrayList<String> arr = new ArrayList<>();
코드
import java.util.*;
class Solution {
public ArrayList solution(int[] arr, int[] delete_list) {
ArrayList<Integer> answer = new ArrayList<>();
for(int i = 0; i<arr.length; i++){
boolean check = true;
for(int j = 0; j<delete_list.length; j++){
if(arr[i]==delete_list[j]){
check = false;
break;
}
}
if(check){ //if문은 조건이 true일 때 동작
answer.add(arr[i]);
}
}
return answer;
}
}
회고
원래는 remove를 사용해서 풀려고 했는데, 설명이 진심 안 읽혀서 친구의 도움을 빌려 ArrayList 사용하게 되었음.
배열 및 리스트의 주소 개념을 모르기 때문에 이해가 안 되는 부분이 많아 공부해야 할 듯하다.
아오 자괴감 들어,,,
참고 자료
728x90