Search

Single Number

문제 설명 : 제공된 리스트 내 데이터 중 중복으로 존재하지 않는 데이터를 반환하면 된다.
풀이 방법
Counter(혹은 defaultdict)를 사용하여, 각 데이터 값을 key로 설정하고 데이터의 존재 갯수를 value로 사용하였다.
이때 value가 1보다 커진다면(중복이 존재한다면) 바로 dict에서 삭제하며, 최종적으로는 중복이 없는 데이터가 key로 존재하는 상태로만 남겨두었다.
다른 사람들은 XOR를 사용한 방식도 사용하였던데, 이것도 좋은 방법인 것 같다.
성공 코드
class Solution: def singleNumber(self, nums: List[int]) -> int: temp = Counter() # 제공된 nums만큼 순회 -> O(N) for num in nums: temp[num] += 1 if temp[num] > 1: del temp[num] return next(iter(temp))
Python
복사