leetcode#217 Contains Duplicate

정은경·2022년 6월 18일
0

알고리즘

목록 보기
94/125

1. 문제

2. 나의 풀이

2-1. 파이썬 리스트의 set 이용하기

  • set을 이용해서 중복을 제거한 후에도 원래의 리스트와 길이가 일치하는 가를 비교
  • 동일 하다면, 중복되는 숫자가 없다는 의미
class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        # 1. 파이썬 set를 이용하여 중복없는 숫자의 리스트를 생성
        # 2. 중복없는 숫자의 리스트와 nums의 길이가 동일하다면 return False
        # 3. 중복없는 숫자의 리스트와 nums읠 길이가 다르다면 return True
        
        if len(nums) == len(set(nums)):
            return False
        return True

2-2. set을 이용하지 않고 풀기

  • set을 제공하지 않는 언어에서 풀 수 있는 방법을 고안
  • 숫자의 횟수를 저장해서 2이상 인지를 체크하는 방법
class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        
        # 1. 숫자들의 횟수를 저장하는 dict 생성
        # 2. nums의 숫자들을 순회하면서 dict 업데이트
        # 3. dict의 key의 value가 2 이상이면 return True
        # 4. 모든 값이 2 이상인 경우가 없으면 return False
        
        count_book = {}
        
        for num in nums:
            if num in count_book:
                return True
            count_book[num] = 1
        return False

3. 남의 풀이

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글