코딩테스트/프로그래머스
[프로그래머스] 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. 배열의 중복 제거