[Programmers] 약수의 개수와 덧셈

string_main·2022년 10월 31일
0

Algorithm

목록 보기
2/3
post-thumbnail

문제

나의 풀이

function solution(left, right) {
    let answer = 0;
    
    for(let j = left; j <= right; j++){
        let count = 0;
        for(let i = 1; i <= j; i++){    
            if(j % i === 0) count++;
        }
        if(count % 2 === 0) answer += j;
        else answer -= j;
    }
    
    return answer;
}

다른 풀이

function solution(left, right) {
    let answer = 0;
  
    for (let i = left; i <= right; i++) {
        if (Number.isInteger(Math.sqrt(i))) {
            answer -= i;
        } else {
            answer += i;
        }
    }
    return answer;
}

느낀점

제곱근이 정수면, 약수의 개수가 홀수라는 것을 알았다면 O(n)으로 풀 수 있는 문제였다.

profile
FE developer

0개의 댓글