업데이트:

최대 1 분 소요

링크

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

풀이

제목과 같이 주어진 정렬된 배열 nums에서 중복된 요소를 제거하여 유일 값들을 남겨야하는 문제.

값을 찾는 비용을 줄이기 위해 dictionary를 사용했다.

  1. pop 연산을 통해 값을 하나씩 추출한다.
  2. 딕셔너리에 현재 추출한 값이 존재한다면 더이상 결과 배열인 res에 추가하지 않는다.
  3. 값이 존재하지 않는다면 이에 1을 저장해 이미 존재함을 알린다.
  4. pop 연산을 통해 얻어낸 배열 res를 뒤집어 비어있는 nums에 다시 채워준다.

코드

Python

class Solution(object):
    def removeDuplicates(self, nums):
        dic = {}
        res = []

        while nums:
            x = nums.pop()
            if not x in dic:
                dic[x] = 1
                res.append(x)
        
        for r in res[::-1]:
            nums.append(r)
            
        return len(nums)

카테고리:

업데이트:

댓글남기기