자바 알고리즘

[leetcode - Java] 26. Remove Duplicates from Sorted Array

Big Iron 2023. 8. 24. 12:18

1. 문제


  • 중복된 값이 존재하는 배열 nums를 중복된 값이 없는 배열로 만들기image

2. 시도


입력받은 정수가 배열 안에 있는지 확인하는 leetcode 27번 문제와 비슷하게 접근했다.

하나의 반복문에서 배열 내부의 두 인덱스를 비교하려다보니 ArrayIndexOutOfBoundsException이 자주 발생했고, 중복 확인을 거친 요소들이 새롭게 담길 객체가 필요했다.

3. 개선


class Solution {
    public int removeDuplicates(int[] nums) {
        ArrayList<Integer> arr = new ArrayList<>();
        int index = 0;

        for (int n : nums) {
            if (!arr.contains(n)) {
                arr.add(n);
                index++;
            }
        }

        for (int i=0; i<arr.size(); i++) {
            nums[i] = arr.get(i);
        }

        System.out.println("arr = " + arr);
        return index;
    }
}

새로운 객체 arr를 만든 이후 입력받은 배열 nums의 요소가 arr에 없다면 arr에 추가하고, arr의 요소들을 다시 nums 배열의 요소로 변환해 주었다.