알고리즘/알고리즘 문제풀이

완전탐색_LeetCode_ContainsDuplicate

Downey 2021. 7. 8. 16:37

배열 내 같은 원소 유무를 확인하는 문제. 링크

처음엔 배열 내 원소를 제거해가며 전체 탐색을 진행했으나, timeOut에 걸려버림...

testCase 중 [0,0,1,2,3 ....... 9999], [0,1,2 ....... 9999,9999] 같은 애들이 있더라...

class Solution {
    func containsDuplicate(_ nums: [Int]) -> Bool {
        var checkingArray = nums[nums.indices]
        var sol = false

           while checkingArray.isEmpty != true {

            let check = checkingArray.popFirst()
               if checkingArray.contains(check!) {
                sol = true
                break
            }
        }

    return sol
    }
}

그래서 정렬하고 자신과 다음 index만을 비교하도록 수정함!

func containsDuplicate(_ nums: [Int]) -> Bool {
    let checkingArray = nums.sorted()
    var sol = false

    for index in 0..<checkingArray.count - 1 {
        if checkingArray[index] == checkingArray[index+1] {
            sol = true
            break
        }
    }

    return sol
}