본문 바로가기

알고리즘풀이

LeetCode: Contains Duplicate

문제설명

  • 정수 배열이 주어졌을 때, 중복된 값이 존재한다면 true를 반환하고 중복된 값이 없다면 false를 반환하라.

문제풀이

  • 값을 저장하고 빠르게 찾을 수 있는 자료구조인 Set을 사용한다.
  • 배열을 한 번만 순회하여 값이 존재한다면 바로 true를 반환한다.
  • 값이 없다면 set에 넣어서 다음 숫자의 검사에 사용될 수 있도록한다.
func containsDuplicate(_ nums: [Int]) -> Bool {
    var set = Set<Int>()

    for num in nums {
        if set.contains(num) {
            return true
        } else {
            set.insert(num)
        }
    }
    return false
}


print(containsDuplicate([1,2,3,1])) // true
print(containsDuplicate([1,2,3,4])) // false
print(containsDuplicate([1,1,1,3,3,4,3,2,4,2])) // true