코딩테스트 준비/leetcode

80. Remove Duplicates from Sorted Array II

MAKGA 2021. 8. 28. 18:25
320x100

https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/

 

Remove Duplicates from Sorted Array II - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

중복 가능한 정렬된 상태의 정수 목록이 주어졌을 때, 별도의 메모리 공간을 사용하지 않는 방법으로 2개 이하의 중복만 허용한 채 목록을 재구성하고, 유효한 정수의 갯수와 해당 목록을 수정하여 반환하는 문제다.

 

예를 들어

Input: nums = [1,1,1,2,2,3] 인 경우

Output: 5, nums = [1,1,2,2,3,_] 으로 반환한다. (_는 사용하지 않는 원소라 무시한다).


class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int garbeagePos = nums.size() - 1;
        int elementCount = nums.size();
        int garbeageCount = 0;
        int prevNum = nums[0];
        bool duplication = false;
        
        for (int i=1; i<nums.size(); ++i)
        {
            if (prevNum == nums[i])
            {
                if (duplication)
                    ++garbeageCount;
                else
                    duplication = !duplication;
            }
            else
            {
                duplication = false;
                prevNum = nums[i];
            }
            
            nums[i - garbeageCount] = nums[i];
        }
        
        return elementCount - garbeageCount;
    }
};

320x100

'코딩테스트 준비 > leetcode' 카테고리의 다른 글

82. Remove Duplicates from Sorted List II  (0) 2021.08.29
81. Search in Rotated Sorted Array II  (0) 2021.08.28
64. Minimum Path Sum  (0) 2021.08.26
77. Combinations  (0) 2021.08.24
79. Word Search  (0) 2021.08.23