본문 바로가기
코딩테스트/LV. 0

LV. 0 :: 소인수분해

by KUROMI98 2023. 1. 26.

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

 

프로그래머스

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

programmers.co.kr

 

function solution(n) 
{
    var answer = [];
    
    for(i=2; i<=n; i++) // i<n으로 적었다 낭패봄. i<=n으로 적어야 함
    { 
        while(n%i==0) // 주어진 n을 i로 나눈다. 그리고 i로 나눠떨어진다면
        { 
            answer.push(i); // i를 answer라는 배열에 넣는다
            n=n/i; // n을 i로 나눈 몫을 n으로 교체해준다. 
        } // 루프는 i가 n으로 나눠떨어지지 않으면 바로 종료된다.
    } 

    answer = answer.filter((wonso, index) => answer.indexOf(wonso) == index);
    // 중복되는 원소를 삭제해준다.
    
    answer = answer.sort((a,b)=>a-b); 
    // 순서대로 정렬해준다.
    
    if (answer.length==0){answer=[n]} 
    // answer의 길이가 0이라면 n이 소수란거니까 answer에 n(자기 자신)을 넣어준다.
    
    return answer;
}

'코딩테스트 > LV. 0' 카테고리의 다른 글

LV0 :: 진료 순서 정하기  (0) 2023.10.12
LV. 0 :: 한 번만 등장한 문자  (0) 2023.01.26
LV. 0 :: 중복된 문자 제거  (0) 2023.01.26
LV. 0 :: 이진수 더하기  (0) 2023.01.26
LV. 0 :: 모스부호 (1)  (0) 2023.01.26

댓글