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 배열의 요소로 변환해 주었다.
'자바 알고리즘' 카테고리의 다른 글
[leetcode - Java] 169. Majority Element (0) | 2023.08.24 |
---|---|
[leetcode - Java] 80. Remove Duplicates from Sorted Array II (0) | 2023.08.24 |
[leetcode - Java] 27. Remove Element (0) | 2023.08.24 |
[leetcode - Java] 88. Merge Sorted Array (0) | 2023.08.23 |
[알고리즘] 프로그래머스 - 피보나치 수 (0) | 2023.05.31 |