매일 땡기는 마라 코딩

[프로그래머스] Lv.0 배열의 원소 삭제하기 본문

알고리즘

[프로그래머스] 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