반응형
SMALL
자기 전 스낵 문제 입니다 !
https://leetcode.com/problems/remove-duplicates-from-sorted-array/
이 문제는 특이하게도 문제에서 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 |