๐Ÿ‘’ ๋ญ? JS๋กœ PS๋ฅผ ํ•œ๋‹ค๊ณ ?

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JS / Javascript] k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ

์„ ๋‹ฌ 2023. 5. 24. 23:20
๋ฐ˜์‘ํ˜•

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

ํ’€์ด

function solution(n, k) {
    function isPrime(num) {
        if(num === 1)
            return false;
        for(let i=2; i<Math.sqrt(num); i++) {
            if(num%i === 0)
                return false;
        }
        return true;
    }
    
    let ans = 0;
    let arr = n.toString(k).split("0");
    for(let i of arr) {
        if(i !== '' && isPrime(parseInt(i)))
            ans++;
    }
    return ans;
}

 

์‹œํ–‰์ฐฉ์˜ค

๋งค๋ฒˆ ์†Œ์ˆ˜ ๊ตฌํ•˜๋ ค๊ณ  ๋ฐ˜๋ณต๋ฌธ ๋„๋Š”๊ฒŒ ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์ด๊ฒŒ ๋ณด์—ฌ์„œ

์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ์†Œ์ˆ˜์—ฌ๋ถ€๋ฅผ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ํ’€์ดํ–ˆ๋Š”๋ฐ

1๋ฒˆ, 12๋ฒˆ, 15๋ฒˆ ํ…Œ์ผ€์—์„œ ํ‹€๋ ธ๋‹ค๊ณ  ๊ณ„์† ๋– ์„œ ํฌ๊ธฐํ–ˆ๋‹ค ใ… ใ… 

    // isPrime[num] = num์ด ์†Œ์ˆ˜์ธ๊ฐ€?
    const INF = 1000000;
    let isPrime = [];
    for(let i=0; i<=INF; i++) {
        isPrime.push(true);
    }
    isPrime[0] = isPrime[1] = false;
    for(let i=2; i<=INF; i++) {
        if(!isPrime[i]) {
            continue;
        }
        for(let j=i*i; j<=INF; j*=i) {
            isPrime[j] = false;
        }
    }
๋ฐ˜์‘ํ˜•