[Swift] 프로그래머스 lv1 약수의 개수와 덧셈
나의 풀이
func solution(_ left:Int, _ right:Int) -> Int {
let arr = Array(left...right)
var result:[Int] = []
for number in arr {
var count = 0
for i in 1...number {
if number % i == 0 {
count += 1
}
}
count % 2 == 0 ? result.append(number) : result.append(-number)
}
return result.reduce(0, +)
}
count 변수를 약수의 개수로 이용했다.
다른 사람 풀이
func solution(_ left: Int, _ right: Int) -> Int {
return (left...right).map { i in (1...i).filter { i % $0 == 0 }.count % 2 == 0 ? i : -i }.reduce(0, +)
}