프론트엔드 개발자의 기록 공간

[프로그래머스 JavaScript] 약수의 개수와 덧셈 본문

알고리즘_JS/프로그래머스_Level1

[프로그래머스 JavaScript] 약수의 개수와 덧셈

[리우] 2021. 7. 11. 11:33

프로그래머스 Level1 약수의 개수와 덧셈 -> 월간 코드 챌린지 시즌2

 

문제 설명 : 주어지는 숫자 사이에 약수들의 개수를 판별해서 짝수개면 해당 수를 더하고 홀수개면 해당 수를 빼면된다.

 

문제 접근법

1. 약수를 구하기 위해서는 1부터 자신의 수까지 반복문을 통해 나누면서 나머지가 0을 구하면됩니다.

여기서 주의할점이 6의 약수는 1,3,6 입니다. 즉 약수가 3, 3으로 중복될 경우만 제외해주면됩니다.

 

function solution(left, right) {
    var answer = 0;
    
    //left ~ right
    for(let i=left; i<=right; i++){
        let cnt = 0;
        //1 ~ i
        for(let j=1; j<=i; j++){
            if(i%j === 0){
                cnt += 1;
            }
        }
        //cnt 개수에 따라 덧셈 뺄셈
       answer = cnt%2 === 0 ? answer += i : answer -= i;
    }
    
    return answer;
}

 

728x90
Comments