Q) 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
나의 풀이
function countFn(num){
let count = 0;
for(let i=1; i<=num; i++){
if(num % i === 0) count++;
}
return count;
}
function solution(left, right) {
let answer = 0;
for (let i=left; i<=right; i++) {
let count = countFn(i)
count % 2 ? answer -= i : answer += i
}
return answer
}
- left부터 right사이에 있는 숫자를 확인해야하므로 반복문으로 작성한다.
- 가독성을 위해 countFn으로 따로 함수를 만든다.
- countFn함수는 약수의 개수를 구하는 함수이다.
- 약수의 개수가 짝수이면 answer에 약수의 개수가 짝수인 값을 더하고 홀수라면 뺀다.