본문 바로가기
Javascript/코딩테스트-연습

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

by BeomBe 2024. 3. 29.
반응형

문제 설명

 

나의 풀이

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

 

while 문을 사용하여, divisor 값으로 나눴을때 나머지가 0이되는 값들을 answer 배열에 집어넣어주었다.

 

마지막에 중복된 값을 삭제하기위해, ...new Set을 이용했다.

 

다른 사람의 풀이

가독성이 좋아서 가져왔다. 접근방식은 비슷했다.

function solution(n) {
    var answer = [];

    for(let i = 2; i <= n; i++) {

        while (n % i === 0) {

            n = n / i;
            answer.push(i);

        }
    }

    return [...new Set(answer)];
}

 

반응형