[프로그래머스/Lv1/자바스크립트] 약수의 합

2023. 4. 28. 12:15

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12928

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


코드

function solution(n) {
    var answer = 0;
    for (var i = 1; i <= Math.sqrt(n); i++) {
        if (n % i == 0) {
            answer += i;
            if (n / i != i) {
                answer += n / i;
            }
        }
    }
    
    return answer;
}

메모

아래 코드를 제출해도 통과할 수 있다.

function solution(n) {
    var answer = 0;
    for (var i = 1; i <= n; i++) {
        if (n % i == 0) {
            answer += i;
        }
    }
    
    return answer;
}

하지만 위 코드는 시간복잡도 측면에서 효율이 좋지 않기 때문에 제출한 코드는 더 효율적인 알고리즘을 사용했다.

알고리즘은 아래 링크 참조

https://kbw1101.tistory.com/32

 

[알고리즘] 효율적으로 약수를 찾는 알고리즘

코딩테스트 문제 중, 가끔 수학적인 기초를 묻는 문제에 약수, 배수 등의 문제가 출제된다. 이러한 유형의 문제를 접해본 경험이 없는 사람들은 최악의 시간복잡도를 갖는, 모든 경우를 찾는 순

kbw1101.tistory.com

 

BELATED ARTICLES

more