728x90
풀이 1 : 리스트와 in 문법 사용
class Solution:
def hasDuplicate(self, nums: List[int]) -> bool:
count = []
for i in nums:
if i not in count:
count.append(i)
else:
return True
return False
NeetCode에서 통과한 코드다.
하지만 LeetCode에서는 nums 배열이 아주 큰 테스트케이스에서 시간 초과로 통과하지 못했다.
풀이 2 : set과 in 문법 사용
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
count = set()
for i in nums:
if i not in count:
count.add(i)
else:
return True
return False
이 풀이가 훨씬 빠르다.
리스트의 in 연산자는 O(n)의 시간복잡도를 갖는 반면,
집합의 in 연산자는 평균 O(1)의 시간복잡도를 갖기 때문이다.
오늘부터 NeetCode 150문제 도장 깨기 시작!
728x90