Codility Lesson 4-4: CodeCheck Report

minin·2022년 5월 5일
0

Algorithm

목록 보기
3/12
post-thumbnail

문제 분석

  • N개의 int로 구성된 array A에 존재하지 않는 가장 작은 양의 정수 출력

ex)

  • A = [1, 2, 3] → 4
  • B = [-1, -3] → 1
  • C = [1, 3, 6, 4, 1, 2] → 5

문제 풀이

public func solution(_ A : inout [Int]) -> Int {
    // 1. 가장 큰 수 음수라면 1 리턴 후 종료
    A.sort()
    if A.last! < 0 { return 1 }
    
    // 2-2. set으로 중복 제거한 후, 다시 array로 변경
    let positiveSetA = Set(A.filter { $0 > 0 })
    var positiveArrayA = Array(positiveSetA)
    // 2-2. 중복 제거된 배열을 순서대로 정렬
    positiveArrayA.sort()
    // 2-3. 배열 순회하며 비어있는 값 찾고 반납
    for (index, value) in positiveArrayA.enumerated() {
        if index + 1 != value {
            return index + 1
        }
    }
    
    return A.last! + 1
}

profile
🍫 iOS 🍫 Swift

0개의 댓글