[Python] LeetCode 26. Remove Duplicates from Sorted Array

송진영·2023년 8월 25일
0

LeetCode

목록 보기
2/8

문제 풀이

리스트의 중복 원소를 제거해주는 문제이다.

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        nums = set(nums)
        nums = list(nums)

파이썬은 위와 같이 set으로 옮겨 담으면 중복을 제거할 수 있지만 LeetCode는 기존의 저런식으로 nums를 재선언하는 것을 답으로 허용하지 않는 것 같다. 그래서 중복을 일일히 찾아서 제거해줬다.

  1. for 문으로 리스트를 탐색한다.

  2. 인덱스의 원소가 인덱스 이전까지의 원소들이 포함된 리스트 안에 존재하는지 확인한다.

  3. 존재한다면 중복된 원소이므로, 제거해준다.

  4. 이 과정을 for 문이 끝날 때까지 반복한다.

※ 주의 할 점은 해당 원소를 제거하면 이후의 원소들이 당겨져서 빈자리를 채우기 때문에 제거하고 나서는 인덱스 값을 증가시키면 안되고, 다시 현재의 인덱스 값을 확인해야 한다.

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        cnt = 1
        for i in range(1, len(nums)): ## 1. for 문으로 리스트를 탐색한다.
            if nums[cnt] in nums[:cnt]: ## 2. 인덱스의 원소가 인덱스 이전까지의 원소들이 포함된 리스트 안에 존재하는지 확인한다.
                del nums[cnt] ## 3. 존재한다면 중복된 원소이므로, 제거해준다.
                cnt -=1
            cnt += 1
profile
못하는 건 없다. 단지 그만큼 노력을 안 할 뿐이다.

0개의 댓글