[23.11.15] 오늘의 TIL

양챙챙·2023년 11월 15일
1

TIL

목록 보기
19/26

약수의 개수와 덧셈

문제 설명

두 정수 left와 right가 매개변수로 주어집니다.
left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고,
약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

  • 제한사항
    1 ≤ left ≤ right ≤ 1,000

내가 푼 풀이

//약수의 개수를 구하는 함수
function divisor(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 result = divisor(i);          
        result % 2 === 0 ? answer += i : answer -= i
    }   
    
    return answer;
}

먼저 약수의 개수를 구해야 덧셈을 해야하는지 뺄셈을 해야하는 확인이 가능하기때문에
함수 divisor를 통해서 해당 수의 약수개수를 count 에 담고

함수solution에서는 divisor 함수를 통해 얻은 약수개수를 result에 담은 뒤
result에 담겨진 수를 삼항연산자로 계산하여 짝수일경우에는 덧셈을 홀수일경우에는 뺄셈을 해주었다.

profile
성장중인 🐑챙챙

0개의 댓글