문제
내 정답 코드
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. 짝수라면 더해주고, 홀수라면 빼준다.
배운 기술
'프로그래머스 (Swift) > lv 1' 카테고리의 다른 글
[lv1] x만큼 간격이 있는 n개의 숫자 (0) | 2024.08.21 |
---|---|
[lv1] 두 개 뽑아서 더하기 (0) | 2024.08.07 |
[lv1] 숫자 문자열과 영단어 (0) | 2024.07.20 |
[lv1] 음양 더하기 (0) | 2024.07.20 |
[lv1] 부족한 금액 계산하기 (2) | 2024.07.20 |