프로그래머스 LEVEL 2(k진수에서 소수 개수 구하기)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-10-04

  • 해결 방법 :
    • n을 k진수로 변환 후 0을 기준으로 split(), 빈 값 filter(), integer형으로 변환
    • 소수 후보자 배열을 돌며 소수 판별
  • 회고 :
    • 소수 판별 시 제곱근 이용 (시간 복잡도: O(√N))
  • 코드

    const isPrimeNumber = (n) => {
        if(n === 1) return false;
        for (let i = 2; i <= Math.floor(Math.sqrt(n)); i++){
            if (n % i === 0) return false;
        }
        return true; 
    }
    
    function solution(n, k) {
        let answer = 0;
        const candidates = n.toString(k).split(0).filter((e) => e).map((e) => parseInt(e));
        for (const candidate of candidates) {
            if (isPrimeNumber(candidate)) answer++;
        }
        return answer;
    }
    
  • 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges