문제 (링크)
- 문제 : 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
- 제한사항 :
- 0 ≤ numbers의 원소 ≤ 1,000
- 1 ≤ numbers의 길이 ≤ 100
- 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
풀이 1 > for...in 구문 사용
import Foundation
func solution(_ numbers:[Int]) -> Double {
guard numbers.count <= 100 else {
print("numbers의 길이는 100 이하입니다.")
return 0
}
var sum = 0
var average: Double = 0
for i in numbers {
sum += i
}
average = Double(sum) / Double(numbers.count)
return average
}
풀이 2 > ✨reduce✨ 사용
import Foundation
func solution(_ numbers:[Int]) -> Double {
return Double(numbers.reduce(0, +)) / Double(numbers.count)
}
reduce를 사용하면 코드가 훨씬 깔끔해진다.
reduce 함수에 대한 자세한 내용은 다음 글에서 확인 가능하다.
2024.02.07 - [Swift/TIL : Today I Learned] - [Swift] 고차함수 - reduce
[Swift] 고차함수 - reduce
reduce 함수는 Swift 표준 라이브러리에서 제공하는 고차함수 중 하나다. (참고: yagom's blog) 고차함수란? 고차함수(Higher-order function)는 다른 함수를 *전달인자로 받거나, 함수실행의 결과를 함수로 반
yurim-dev.tistory.com
'Swift > Code Kata (알고리즘)' 카테고리의 다른 글
[Swift|코드카타] (프로그래머스) 입문 #12. 평균 구하기 (0) | 2024.02.07 |
---|---|
[Swift|코드카타] (프로그래머스) 입문 #11. 짝수와 홀수 - String 따옴표 '' or "" (0) | 2024.02.07 |
[Swift|코드카타] (프로그래머스) 입문 #9. 짝수의 합 (for...in...where) (0) | 2024.02.07 |
[Swift|코드카타] (프로그래머스) 입문 #8. 각도기 (0) | 2024.02.07 |
[Swift|코드카타] (프로그래머스) 입문 #3. 나누기 (0) | 2024.02.07 |