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

Chobbyยท2022๋…„ 1์›” 22์ผ
1

Programmers

๋ชฉ๋ก ๋ณด๊ธฐ
1/345
post-thumbnail

๋ฌธ์ œ ์„ค๋ช…
์–‘์˜ ์ •์ˆ˜ n์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ด ์ˆซ์ž๋ฅผ k์ง„์ˆ˜๋กœ ๋ฐ”๊ฟจ์„ ๋•Œ, ๋ณ€ํ™˜๋œ ์ˆ˜ ์•ˆ์— ์•„๋ž˜ ์กฐ๊ฑด์— ๋งž๋Š” ์†Œ์ˆ˜(Prime number)๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์•Œ์•„๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.

0P0์ฒ˜๋Ÿผ ์†Œ์ˆ˜ ์–‘์ชฝ์— 0์ด ์žˆ๋Š” ๊ฒฝ์šฐ,

P0์ฒ˜๋Ÿผ ์†Œ์ˆ˜ ์˜ค๋ฅธ์ชฝ์—๋งŒ 0์ด ์žˆ๊ณ  ์™ผ์ชฝ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๊ฒฝ์šฐ,

0P์ฒ˜๋Ÿผ ์†Œ์ˆ˜ ์™ผ์ชฝ์—๋งŒ 0์ด ์žˆ๊ณ  ์˜ค๋ฅธ์ชฝ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๊ฒฝ์šฐ,

P์ฒ˜๋Ÿผ ์†Œ์ˆ˜ ์–‘์ชฝ์— ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๊ฒฝ์šฐ,

๋‹จ, P๋Š” ๊ฐ ์ž๋ฆฟ์ˆ˜์— 0์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์†Œ์ˆ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, 101์€ P๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, 437674์„ 3์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋ฉด 211020101011์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์— ๋งž๋Š” ์†Œ์ˆ˜๋Š” ์™ผ์ชฝ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ 211, 2, 11์ด ์žˆ์œผ๋ฉฐ, ์ด 3๊ฐœ์ž…๋‹ˆ๋‹ค. (211, 2, 11์„ k์ง„๋ฒ•์œผ๋กœ ๋ณด์•˜์„ ๋•Œ๊ฐ€ ์•„๋‹Œ, 10์ง„๋ฒ•์œผ๋กœ ๋ณด์•˜์„ ๋•Œ ์†Œ์ˆ˜์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์ ์— ์ฃผ์˜ํ•ฉ๋‹ˆ๋‹ค.) 211์€ P0 ํ˜•ํƒœ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, 2๋Š” 0P0์—์„œ, 11์€ 0P์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์ˆ˜ n๊ณผ k๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. n์„ k์ง„์ˆ˜๋กœ ๋ฐ”๊ฟจ์„ ๋•Œ, ๋ณ€ํ™˜๋œ ์ˆ˜ ์•ˆ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์œ„ ์กฐ๊ฑด์— ๋งž๋Š” ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

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
}

function solution(n, k) {
    let result = 0
    let zeroIdx = -1
    const transNum = n.toString(k)
    for(let i = 0 ; i < transNum.length ; i ++) {
        // 0์ธ ๊ฒฝ์šฐ
        if(!Number(transNum[i])) {
            // ์ด์ „ 0 ๋ถ€ํ„ฐ ํ˜„์žฌ์˜ 0 ๋ฒˆ์งธ ์ธ๋ฑ์Šค ์‚ฌ์ด์˜ ์ˆ˜๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„
            const nowNum = transNum.substring(zeroIdx+1,i)
            debugger
            isPrime(nowNum) ? result++ : null
            zeroIdx = i
        }
    }
    // ๋งˆ์ง€๋ง‰ 0์„ ๊ธฐ์ค€์œผ๋กœ ๋‚จ์€ ์ˆ˜๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„
    isPrime(transNum.substring(transNum.lastIndexOf(0)+1)) ? result++ : null
    return result
}

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งŒ๋“ค์–ด๋ดค์Šต๋‹ˆ๋‹ค.

0์„ ๊ธฐ์ค€์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋ฌธ์ž์—ด์„ ๋ถ„๋ฆฌํ• ๊นŒ ์ƒ๊ฐํ•˜๋Š” ๊ณผ์ •์—์„œ String.split() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด ์กฐ๊ธˆ ๋” ์ข‹์€ ์ฝ”๋“œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ ๊ฐ™๋„ค์š”

profile
๋‚ด ์ง€์‹์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋‹ดํ•จ

0๊ฐœ์˜ ๋Œ“๊ธ€