두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
import Foundation
func solution(_ left:Int, _ right:Int) -> Int {
var result = 0
for i in left...right {
var count = 0
for j in 1...i {
if i % j == 0 {
count += 1
}
}
if count % 2 == 0 {
result += i
} else {
result -= i
}
}
return result
}
다른 분들의 풀이를 보니 고차함수를 사용해 훨씬 간결하게 작성한 걸 알 수 있었다.
지금은 정답만 맞추면 되겠지 라는 생각으로 풀고 있지만 점점 가독성과 시간 복잡도를 신경쓰며 해결해봐야겠다고 생각했다.