적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Algorithm/Programmers

[Swift 알고리즘] Programmers 약수의 합

hongssup_ 2022. 1. 29. 11:48
반응형
문제 설명
 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
 n은 0 이상 3000이하인 정수입니다.

 

입출력 예시

print(solution(12)) //28
print(solution(5)) //6

 

내 답안

func solution(_ n:Int) -> Int {
    if n == 0 { return 0 }
    let arr = Array<Int>(1...n).filter{n % $0 == 0}
    var result = 0
    for i in arr {
        result += i
    }
    return result
}

 

모범답안

func solution(_ n:Int) -> Int {
    return n != 0 ? (1...n).filter{n % $0 == 0}.reduce(0,+) : 0
}
728x90
반응형