[프로그래머스] 소인수분해

이아현·2023년 6월 5일
0

코딩테스트

목록 보기
12/31
post-thumbnail

✅ 문제 설명

소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 2 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

✅ 제한사항

  • 2 ≤ n ≤ 10,000

👩‍💻 나의 풀이

function solution(n) {
    var answer = [];
    var check = 2;
    
    while ( n >= 2) {
        if (n % check === 0) {
            answer.push(check);
            n = n / check
        } else {
            check++;
        }
    }
    answer = [...new Set(answer)]
    
    return answer;
}
  • 이번 코드는 다른 코드를 좀 참고했다. while문 조건을 잘못 지정해줘서 무한루프로 코드가 돌아가다가 시간 초과가 떴는데 n>=2로 바꿔주니까 해결이 됐다.
  • while문을 쓸 때는 break되는 조건을 신중하게 고민하고 넣어야할 것 같다!
profile
PM을 지향하는 FE 개발자 이아현입니다 :)

0개의 댓글