프로그래머스 (Swift)/lv 1
[lv1] 약수의 개수와 덧셈
은더기
2024. 7. 30. 15:52
문제

내 정답 코드
import Foundation
func solution(_ left:Int, _ right:Int) -> Int {
var result = 0
(left...right).map {
if calDivisorCount(num: $0).isMultiple(of: 2) {
result += $0
} else {
result -= $0
}
}
return result
}
func calDivisorCount(num: Int) -> Int {
var count = 0
for i in 1...Int(sqrt(Double(num))) {
if num % i == 0 {
if i * i == num {
count += 1
} else {
count += 2
}
}
}
return count
}
#
1. 저번에 만들었던 약수의 개수를 효율적으로 구하는 함수를 구현한다.
2. left에서 right까지 반복문을 돌리고
3. 약수의 개수가 짝수 홀수인지 판단하여
4. 짝수라면 더해주고, 홀수라면 빼준다.
배운 기술