def sol(nums):
Counter = Counter(nums) # collections 라이브러리 이용
for key, value in Counter.items():
for i=0..value-1:
nums에서 key 삭제
return nums의 길이
from collections import Counter
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
for k, v in Counter(nums).items():
for _ in range(v - 1):
nums.remove(k)
return len(nums)
from collections import Counter
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
cnt = Counter(nums)
nums[:] = [e for e in cnt.keys()]
return len(nums)
Counter는 nums 배열에 등장한 요소들의 개수를 저장한다.
따라서 key는 중복이 없는 set이므로 삭제 과정을 제거하고 추가만하도록 변경하였다. Counter에서 저장하는 과정은 O(n), 그리고 최대 200개의 key를 가질 수 있으므로 추가하는 과정에서는 크게 영향을 주지 않는다고 생각한다.