풀이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