[Swift] 프로그래머스 평균 구하기
문제 설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
제한사항
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 예
arr return [1, 2, 3, 4] 2.5 [5, 5] 5
풀이
(arr배열의 모든 원소의 합 / arr배열의 길이)를 구하는 간단한 문제입니다.
1
2
3
4
5
6
7
8
9
func solution(_ arr:[Int]) -> Double {
var sum = 0
for i in 0..<arr.count {
sum += arr[i]
}
return Double(sum) / Double(arr.count)
}
- 주어진 배열의 길이만큼 반복문을 실행합니다.
- sum 변수에 arr 배열의 요소를 더합니다.
- 평균값을 계산해 반환합니다. (/ 계산 시 분모와 분자의 자료형을 맞춰줘야 합니다.)
실행 결과
풀이(reduce 함수 이용)
배열의 요소들을 더할 때 swift 고차함수인 reduce가 있는데요.
reduce를 사용하면 좀 더 간결하게 코드를 짤 수 있습니다.
1
2
3
func solution(_ arr:[Int]) -> Double {
return Double(arr.reduce(0, +)) / Double(arr.count)
}
- reduce를 이용해 arr 배열의 모든 원소의 합을 구한 뒤 평균값을 계산해 반환합니다.
실행 결과
시간이 같게 나올 줄 알았는데 예상외로 고차함수를 사용했을 때 시간이 더 오래 걸렸습니다.
혹시 이유를 아시는 분 계실까요…?
댓글남기기