•
문제 링크 : LeetCodeSingle Number - LeetCode
•
문제 설명 : 제공된 리스트 내 데이터 중 중복으로 존재하지 않는 데이터를 반환하면 된다.
•
풀이 방법
◦
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
복사