LeetCode 3. Remove Duplicates from Sorted Array

허크·2023년 8월 24일
0

https://leetcode.com/problems/remove-duplicates-from-sorted-array/?envType=study-plan-v2&envId=top-interview-150

26. Remove Duplicates from Sorted Array

⭐ 문제

오름차순으로 정렬된 배열 nums가 주어졌을때 각 요소가 한번만 나타나도록 중복요소를 '제자리에서' 제거해야 합니다. '상대적 순서'는 동일하게 유지해야 합니다. 고유한 요소 갯수를 반환해야 합니다.

고유한 요소 갯수를 k로 간주하고
1. k개 요소는 고유한 요소를 포함해야합니다. 나머지요소는 nums의 크기와 마찬가지로 중요하지 않습니다
2. k를 반환해야 합니다

🤔 고려 사항

2. Remove Element 에서의 경험으로 직접적으로 삭제하지 않고 문제의 요구사항을 충족하는 최적의 코드를 짜봤습니다.

오름차순으로 정렬되어 있는 상태이므로 고유값을 변수에 저장해서 첫값부터 차근차근 비교해나가는 반복문으로 풀어봤습니다.

✍️ 의사 코드

  1. k값과 고유값을 저장할 변수 초기화
  2. 반복문으로 순회하면서 이전값과 비교하면서 같지않다면 k번째값에 할당하고 k를 1증가 그리고 고유값 저장 변수를 해당값으로 교체
  3. k값 반환.

✅ 나의 풀이

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

🖥️ 결과

Runtime 1ms

profile
codestates seb 44th // 다크모드로 보는걸 추천드립니다

0개의 댓글