업데이트:

최대 1 분 소요

링크

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

풀이

제목과 같이 주어진 정렬된 배열 nums에서 중복된 요소를 제거하여 유일 값들을 남겨야하는 문제. 단 이전 문제와 다르게 2회 초과로 등장하는 요소를 삭제해야 한다.

  1. 이전 문제와 같이 pop연산을 통해 추출한 값의 횟수를 저장한다.
    1. 2회 초과라면 더이상 res에 저장하지 않는다.
    2. 2회 미만이라면 res에 저장하고 그 수를 저장한다.
  2. 마찬 가지로 pop연산을 통해 얻어낸 배열 res를 뒤집어 nums에 채워넣는다.
  3. 길이를 반환한다.

    코드

Python

class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        res = []
        dic = {}
        while nums:
            x = nums.pop()
            if x in dic:
                if dic[x] < 2:
                    dic[x] += 1
                    res.append(x)
            else:
                dic[x] = 1
                res.append(x)
        
        for r in res[::-1]:
            nums.append(r)
        
        return len(nums)
                

카테고리:

업데이트:

댓글남기기