본문 바로가기

Algorithm/LeetCode

LeetCode 26. Remove Duplicates from Sorted Array

문제링크: leetcode.com/problems/remove-duplicates-from-sorted-array/

문제 요약: (문제 이해하는게 제일 오래걸렸다.) 정렬된 배열이 주어졌을때, 주어진 배열을 바꾸고(중복을 다 제거하고), 중복아닌 원소 갯수 반환. 

* 부연설명: 주어진 배열이 [1,1,2,2,3] 이면 중복을빼면 [1,2,3] 인데, 주어진 배열 자체를 [1,2,3,2,3] 뒷인덱스는 신경안쓴다고함. 이런식으로 바꾸고 중복아닌 원소 갯수를 return;

예: [1,1,2] -> [1,2] (내가푼 방식되로 한다면, 원래 배열은 [1,2,2] 이렇게 되있음)

예: [0,0,1,1,1,2,2,3,3,4] -> [0,1,2,3,4] (마찬가지로 원래 배열은 [0,1,2,3,4,2,2,3,3,4]

 

문제접근: 문제만 이해한다면 반복문 한번에 끝낼 수 있다. (문제가 이상한거 같아서 싫어요가 많다.)

 

구현코드:

class Solution {
    public int removeDuplicates(int[] nums) {
        int res = 1;
        for(int i = 0; i < nums.length - 1; i++) {
            if (nums[i] != nums[i+1]) {
                nums[res] = nums[i+1];
                res++;
            }
        }
        return res;
    }
}

res가 1인 이유는, 맨 앞 원소는 무조건 포함이니까 (중복이든 아니든 세야한다.) 두번째 인덱스부터 숫자를 채워나가기 위해서이다.

마찬가지로 싫어요가 많아서 안풀라했지만, easy 안푼것들 풀어보려고 해서 풀어봄.

'Algorithm > LeetCode' 카테고리의 다른 글

LeetCode 35. Search Insert Position  (0) 2021.01.11
LeetCode 28. Implement strStr()  (0) 2021.01.08
LeetCode 13. Roman to Integer  (0) 2021.01.07
LeetCode 337. House Robber III  (0) 2020.12.04
LeetCode 2. Add Two Numbers  (0) 2020.12.03