217. Contains Duplicate

Doyeon Kim·2022년 5월 11일

코딩테스트 공부

목록 보기
57/171

문제 링크 : https://leetcode.com/problems/contains-duplicate/


nums배열이 주어진 후 같은 숫자가 있으면 True, 없다면 False를 반환하는 문제이다..

우선 nums를 오름차순으로 정렬한 뒤, 정렬이 되면 같은 값이 있을 경우 같은 값끼리 정렬되게 되니 옆을 비교하며 True/False값을 반환할 수 있다..

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        nums.sort()
        for i in range(1,len(nums)):
            if nums[i] == nums[i-1]:
                return True            
        return False

결과 :
Runtime: 572 ms, faster than 49.24% of Python3 online submissions for Contains Duplicate.
Memory Usage: 26.1 MB, less than 5.32% of Python3 online submissions for Contains Duplicate.


discuss에 보니 set함수를 이용하여 간단하게 푸는 방법이 있었다
set함수는 중복을 제거하는 함수로써 원래의 nums 과 set이후 nums 개수를 비교하는 알고리즘이다..

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        return len(set(nums)) != len(nums)

Runtime: 481 ms, faster than 79.82% of Python3 online submissions for Contains Duplicate.
Memory Usage: 26 MB, less than 30.37% of Python3 online submissions for Contains Duplicate.


22.06.12
다시 풀었을 때는 위의 discuss에 올라온 방법으로 풀었었다.
근데 이후에 사람들이 더 빨리 푸는 코드들을 제출했는지 퍼센테이지 더 낮게 나옴

Runtime: 957 ms, faster than 5.01% of Python3 online submissions for Contains Duplicate.
Memory Usage: 26 MB, less than 29.48% of Python3 online submissions for Contains Duplicate.

profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글