티스토리 뷰

문제 링크

 

프로그래머스

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

programmers.co.kr

 

문제 설명

 

제한사항

 

입출력 예

 

문제 풀이

1. string.split("0")을 이용해서 문제에 나와있는 "P"를 구해준다.

2. 1은 소수가 아니므로 제외하고, 110011을 split("0")할 경우 ["11", "", "11"]이 나오기 때문에 빈 문자열도 제외해준다.

3. split("0")한 배열을 반복문 돌면서 숫자로 형변환해주고 제곱근을 구해준다.

4. i = 3부터 제곱근까지 반복문을 돌면서 소수를 구해준다.

 

const isDecimal = (number) => {
    const sqrt = parseInt(Math.sqrt(number));
    
    for(let i = 3; i <= sqrt; i+=2) {
        if(number % i === 0) return false;
    }
    return true;
}

function solution(n, k) {
    let answer = 0;
    let toStr = n.toString(k);
    let temp = toStr.split("0");
    
    for(let i = 0; i < temp.length; i++) {
        if(temp[i] === "1" || temp[i] === "") continue;
        if(isDecimal(parseInt(temp[i]))) answer++;
    }
    
    return answer;
}

 

마무리

소수 구하기 잊지말자!