자바 알고리즘
[leetcode - Java] 26. Remove Duplicates from Sorted Array
Big Iron
2023. 8. 24. 12:18
1. 문제
- 중복된 값이 존재하는 배열 nums를 중복된 값이 없는 배열로 만들기
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 배열의 요소로 변환해 주었다.