[코딜리티] 레슨 5 - MinAvgTwoSlice (Swift)

devapploper·2024년 8월 12일

풀이1

public func solution(_ A : inout [Int]) -> Int {
    var minimum = Double.greatestFiniteMagnitude
    var startIndex = -1

    for i in 0..<A.count-2 {
        let averageOfThree = Double(A[i] + A[i+1] + A[i+2]) / 3
        let averageofTwo = Double(A[i] + A[i+1]) / 2

        if averageOfThree < minimum || averageofTwo < minimum {
            minimum = min(averageofTwo, averageOfThree)
            startIndex = i
        }
    }
    
    let lastIndexToTest = A.count-2
    let lastAverageOfTwo = Double(A[lastIndexToTest] + A[lastIndexToTest+1]) / 2
    
    if lastAverageOfTwo < minimum {
        return lastIndexToTest
    } else {
        return startIndex
    }
}

풀이에 참고한 내용: https://www.youtube.com/watch?v=Xu_hTjFAauk

profile
iOS, 알고리즘, 컴퓨터공학에 관련 포스트를 정리해봅니다

0개의 댓글