코딩테스트/프로그래머스

[프로그래머스] Lv.0 - 소인수분해

MJ FE 2023. 5. 23. 16:27

 

 

1. 문제


 

프로그래머스

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

programmers.co.kr

 

 

2. 풀이


function solution(n) {
    var answer = [];
    let d = 2;
    
    while (n >= 2) {
        if (n % d === 0) {
            answer.push(d);
            n = n / d;
        } else {
            d++;
        }
    }
    
    answer = [...new Set(answer)];
    
    return answer;
}

 

 

3. ★


1. 소인수분해를 하는 가장 작은 값인 2를 배열 d로 선언

2. 자연수를 d로 나누었을 때

- 나머지가 0일 경우, d 값을 배열에 넣어준 뒤 => n 값을 d로 나눔

- 나머지가 0이 아닌 경우, d++

3. 2번을 n 값이 1이 될 때까지 while문을 통해 반복

3. 배열의 중복 제거