
나의 코드
func solution(_ arr:[Int]) -> Double {
var sum = 0
var answer : Double = 0.0
if arr.count >= 1 && arr.count <= 100 {
if arr[0] >= -10000 && arr[arr.count-1] <= 10000 {
for i in 0 ..< arr.count {
sum += arr[i]
}
}
} else {
answer = 0
}
answer = Double(sum) / Double(arr.count)
return answer
}
이렇게 작성한 이유.
최근에도 비슷한 문제가 있었는데 그때는 in 0 ... arr.count-1 로 했었던 걸로 기억한다.
그래서 이번에는 ... 이 아닌 ..< 을 사용을 해보았다.
후기.
제출 후 다른 사람들은 어떻게 작성을 했을까 보던 중
reduce를 통해서 코드를 아주 심플하게 작성한것을 보았다.
코드는 아래와 같다.
func solution(_ arr:[Int]) -> Double {
return Double(arr.reduce(0,+))/Double(arr.count)
}
뭔가 코드를 보고 공부를 하지않은 상태에서 추론을 해본다면 reduce문이 처음인자부터 시작해서 누적으로 더한다는것을 의미하는 것 같다.
즉 for문을 심플하게 사용하는것일까. reduce문을 공부를 해봐야겠다는 생각이 들었다.
조만간 여기에도 정리를 해봐야겠다.
import Foundation
func solution(_ arr:[Int]) -> Double {
var sum : Double = 0.0
var answer : Double = 0.0
answer = Double(arr.reduce(0){$0 + $1}) / Double(arr.count)
return answer
}