본문 바로가기

알고리즘 문제 풀이/LeetCode

26. Remove Duplicates from Sorted Array

반응형
SMALL

자기 전 스낵 문제 입니다 !


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

 

Remove Duplicates from Sorted Array - 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


이 문제는 특이하게도 문제에서 extra memory로 배열을 만들지 말라고 합니다.

 

메소드에 들어오는 인자 배열만 사용해라는 뜻이죠.

 

처음엔 굉장히 당황스러웠습니다. 새로운 배열을 못 쓴다는 사실이 ㅠㅠ



그런데 생각해보니 저희가 어차피 중복된 수만큼 배열을 사용할거잖아요? 그 뒤에가 숫자가 있든 없든 상관이 없던거더라고요?

 

그래서 갯수를 세면서 그 인덱스가 될 때마다 데이터를 때려넣으니까 정답이 나왔습니다 !

 

무슨 말이냐 하면, [0, 1, 1, 100, 200, 200] 이라는 수가 있다고 칩시다. 이걸 줄이면 [0, 1, 100, 200, 200 200]이 될텐데, 어차피 길이만큼 리턴이 되니까 !! 원래 있는 배열을 맘대로 조작해도 된다는 뜻이죠.

 

코드를 봅시다.

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        if nums == []:
            return 0
        result = 0
        val = nums[0] - 1
        
        for key, value in enumerate(nums):
            if value > val:
                val = value
                nums[result] = val
                result += 1
            
        return result

빈 리스트가 들어오면 정답이 없으니 0을 뱉죠. result는 return int 값이고, val는 계속해서 값을 갱신해가면서, 중복되는 수가 아닌 수가 나왔을 때 갱신이 됩니다. (수가 이미 정렬된 정렬이기 때문에 가능합니다.

 

이렇게 하면 쉽게 해결이 됩니다 !!


이상 26. Remove Duplicates from Sorted Array였습니다. ^_^

반응형
LIST

'알고리즘 문제 풀이 > LeetCode' 카테고리의 다른 글

Range Sum Query - Immutable with 2D  (0) 2020.07.06
264. Ugly Number II (Heap)  (0) 2020.07.05
263. Ugly Number  (0) 2020.07.04
307. Range Sum Query - Mutable  (0) 2020.07.03
20. Valid Parentheses  (0) 2020.07.01