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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JS / Javascript] ์†Œ์ˆ˜ ์ฐพ๊ธฐ

์„ ๋‹ฌ 2023. 6. 20. 01:55
๋ฐ˜์‘ํ˜•

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

 

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

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

programmers.co.kr

 

ํ•œ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ์ ํžŒ ์ข…์ด ์กฐ๊ฐ์ด ํฉ์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค. ํฉ์–ด์ง„ ์ข…์ด ์กฐ๊ฐ์„ ๋ถ™์—ฌ ์†Œ์ˆ˜๋ฅผ ๋ช‡ ๊ฐœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด๋ ค ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ์ข…์ด ์กฐ๊ฐ์— ์ ํžŒ ์ˆซ์ž๊ฐ€ ์ ํžŒ ๋ฌธ์ž์—ด numbers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ข…์ด ์กฐ๊ฐ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์†Œ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

function solution(numbers) {
    const INF = 10000000;

    // ์ž…๋ ฅ๊ฐ’์— ๋“ค์–ด์žˆ๋Š” ์ˆ˜์˜ ์ข…๋ฅ˜์™€ ๊ฐฏ์ˆ˜
    const numberArr = [0,0,0,0,0,0,0,0,0,0];
    for(let i of numbers) {
        numberArr[parseInt(i)]++;
    }

    // prime[i] = i๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ์—ฌ๋ถ€
    let prime = [];  
    for(let i=0; i<INF; i++) {
        prime.push(true);
    }
    prime[0] = prime[1] = false;
    for(let i=2; i<INF; i++) {
        if(!prime[i]) {
            continue;
        }
        for(let j=i*i; j<INF; j+=i) {
            prime[j] = false;
        }  
    }

    // primeNum ๋ฐฐ์—ด ๋Œ๋ฉด์„œ ํ•ด๋‹น ์†Œ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋Š”์ง€ ์นด์šดํŠธ
    function makable(target, numbers) {
        for(let i of target) {
            const n = parseInt(i);
            numbers[n]--;
            if(numbers[n]<0) {
                return false;
            }
        }
        return true;
    }

    let ans = 0;
    for(let i in prime) {
        if(!prime[i] || i.length > numbers.length) {
            continue;
        }
        if(makable(i, [...numberArr])) {
            ans++;
        }
    }

    return ans;
}

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŠน์„ฑ๋•Œ๋ฌธ์ธ์ง€๋Š” ๋ชฐ๋ผ๋„ ์ƒ๋‹นํžˆ ๋Š๋ฆฌ๋‹ค..

c++๋กœ ์‹œ๋„ํ•ด๋ณด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ด์•ผํ• ๋“ฏ

๋ฐ˜์‘ํ˜•