๋ฌธ์ ๋งํฌ
์ฝ๋ฉํ ์คํธ ์ฐ์ต - k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ
๋ฌธ์ ์ค๋ช ์์ ์ ์ n์ด ์ฃผ์ด์ง๋๋ค. ์ด ์ซ์๋ฅผ k์ง์๋ก ๋ฐ๊ฟจ์ ๋, ๋ณํ๋ ์ ์์ ์๋ ์กฐ๊ฑด์ ๋ง๋ ์์(Prime number)๊ฐ ๋ช ๊ฐ์ธ์ง ์์๋ณด๋ ค ํฉ๋๋ค. 0P0์ฒ๋ผ ์์ ์์ชฝ์ 0์ด ์๋ ๊ฒฝ์ฐ P0์ฒ๋ผ ์
programmers.co.kr
์ ๊ทผ ๋ฐฉ๋ฒ
๋ฌธ์ ์ ์ค๋ช ๋๋ก ์ ๊ทผํ๋ฉด ๋๋ค.
1. n์ k์ง์๋ก ๋ณํํ๋ค. : n.toString(k)
2. 0P0์ฒ๋ผ ์์ ์์ชฝ์ 0์ด ์๋ ๊ฒฝ์ฐ
P0์ฒ๋ผ ์์ ์ค๋ฅธ์ชฝ์๋ง 0์ด ์๊ณ ์ผ์ชฝ์๋ ์๋ฌด๊ฒ๋ ์๋ ๊ฒฝ์ฐ
0P์ฒ๋ผ ์์ ์ผ์ชฝ์๋ง 0์ด ์๊ณ ์ค๋ฅธ์ชฝ์๋ ์๋ฌด๊ฒ๋ ์๋ ๊ฒฝ์ฐ
P์ฒ๋ผ ์์ ์์ชฝ์ ์๋ฌด๊ฒ๋ ์๋ ๊ฒฝ์ฐ
์์ ์กฐ๊ฑด๋ค์ ๋ณํํ k์ง์๋ฅผ 0์ผ๋ก split()ํ๋ฉด ๋๋๊ฒ ๋๋ค.
3. ์์๋ฅผ ํ๋ณํ๋ isPrimeํจ์๋ฅผ ์์ฑํ์ฌ split()๋ ๋ฐฐ์ด์ ์ ์๋ก ๋ฐ๊พธ๊ณ ์์์ธ์ง ํ๋ณํ๋ค.
์ฃผ์ ์ฌํญ
k ์ง์๋ก ๋ณํํ์ฌ 0์ ๊ธฐ์ค์ผ๋ก split("0") ํ ๋, ์ด์ด์ง 0๋ค์ด ์์ผ๋ฉด ""๋ก ๋๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
let n = 43765, k = 3; const arr = n.toString(k).split("0"); // '2020000221' => ['2', '2', '', '', '', '221']โ
๋ง์ฝ ์ด๋๋ก Numberํ์ผ๋ก ์นํํ๋ฉด ""์ 0์ผ๋ก ์ธ์ํ์ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
console.log(Number("")) // 0โ
๋๋ฌธ์ for๋ฌธ์์ arr[i] === "" ์ผ๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ฑฐ๋
isPrime() ํจ์์์ ๋งค๊ฐ๋ณ์ number === 0 ์ผ๋ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
(ํ์๊ฐ ๋ ์ข์๋ฏ)
const solution = (n, k) => {
let primeCnt = 0;
const arr = n.toString(k).split("0");
for (let i = 0; i < arr.length; i++) {
//if(arr[i] === "") continue;
if (isPrime(Number(arr[i]))) primeCnt++;
}
return primeCnt;
};
const isPrime = (number) => {
if (number <= 1) return false;
if (number === 2) return true;
for (let i = 2; i <= Math.sqrt(number); i++) {
if (number % i === 0) return false;
}
return true;
};
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] 2๊ฐ ์ดํ๋ก ๋ค๋ฅธ ๋นํธ (77885) (0) | 2022.06.23 |
---|---|
[Javascript] 1์ฐจ ๋ด์ค ํด๋ฌ์คํธ๋ง (17677) (0) | 2022.06.23 |
[Javascript] ๋ ๋ฐ๋จน๊ธฐ (12913) (0) | 2022.06.23 |
[Javascript] ํผ๋ก๋ (87946) (0) | 2022.06.23 |
[Javascript] 2 * n ํ์ผ๋ง (12900) (0) | 2022.06.22 |