leetcode.com/explore/featured/card/top-interview-questions-easy/92/array/727/
풀이
정렬된 배열에서 중복을 제거하는 것이 문제이다.
가장 간단한 방법은 set에 담아 중복을 제거하고 list로 변환 후 정렬을 하는 것이 가장 간단할 것이다. 하지만 이 방법은 메모리를 많이 사용하기 때문에 좋은 방법은 아니라고 판단하여,
indexing을 이용하여 중복 유무를 판단하고 중복을 제거해주는 방법으로 문제를 풀었다.
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if len(nums)==0: return 0
i=0
for j in range(1,len(nums)):
if nums[i]!=nums[j]: # If not duplicated
i+=1 # Move i
nums[i]=nums[j] # Swap
return i+1
반응형
'Algorithm > Online judge' 카테고리의 다른 글
[LeetCode] Array > Contains Duplicate (0) | 2021.05.06 |
---|---|
[LeetCode] Array > Best Time to Buy and Sell Stock II (0) | 2021.05.06 |
[백준] 6588번 > 골드바흐의 추측 (0) | 2021.04.30 |
[백준] 15711번 > 환상의 짝꿍 (1) | 2021.04.30 |
[프로그래머스] 동적 계획법 > 정수 삼각형 (0) | 2021.04.29 |