프로그래머스 Lv.1 : 약수의 개수와 덧셈

zeroequaltwo·2022년 11월 17일
0

코딩테스트

목록 보기
24/69

문제

프로그래머스 문제

내 풀이

function solution(left, right) {
    const arr = Array(right + 1 - left).fill(left).map((num, idx) => num + idx);
    return arr.reduce((acc, cur) => Math.sqrt(cur) === parseInt(Math.sqrt(cur)) ? acc - cur : acc + cur , 0);
}

개선점

  • Number.isInteger()를 쓰면 나처럼 길게 조건문 안써도 된다.
function solution(left, right) {
    var answer = 0;
    for (let i = left; i <= right; i++) {
        if (Number.isInteger(Math.sqrt(i))) {
            answer -= i;
        } else {
            answer += i;
        }
    }
    return answer;
}
profile
나로 인해 0=2가 성립한다.

0개의 댓글