Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ์ฐพ๊ธฐ ๋ณธ๋ฌธ
๐ ๋ฌธ์
ํ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์์ต๋๋ค. ํฉ์ด์ง ์ข ์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค.
๊ฐ ์ข ์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด numbers๊ฐ ์ฃผ์ด์ก์ ๋, ์ข ์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์์๊ฐ ๋ช ๊ฐ์ธ์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ก ์์ด๋์ด
์์ด + ์์ ์ฐพ๊ธฐ + Set ํ์ฅ ์กฐํฉ..
โ๏ธ ํ์ด
function solution(numbers) {
const arr = numbers.split('');
const primeSet = new Set();
// ๊ฐ์ ์๊ฐ ์ฌ๋ฌ ๋ฒ ๋์ฌ ์ ์์ผ๋๊น Set์ผ๋ก ์ค๋ณต ์ ๊ฑฐํด์ฃผ๊ธฐ
for(let i=1; i<=numbers.length; i++) {
const permutaion = permutations(arr, i);
for(let i=0; i<permutaion.length; i++) {
if(isPrime(Number(permutaion[i].join("")))){
primeSet.add(Number(permutaion[i].join("")));
}
}
}
return primeSet.size;
}
// ์กฐํฉํด์ ๋์ฌ ์ ์๋ ๋ชจ๋ ์ ๊ตฌํ๊ธฐ(์์ด)
function permutations(arr, num) {
const result = [];
if(num === 1) return arr.map((el) => [el]);
arr.forEach((fixed, index, origin) => {
const rest = [...origin.slice(0, index), ...origin.slice(index+1)];
const permutation = permutations(rest, num - 1);
const attached = permutation.map((el) => [fixed, ...el]);
result.push(...attached);
})
return result;
}
// ์์ ํ๋ณ
function isPrime(num) {
if(num === 1 || num === 0) return false;
for(let i=2; i<=Math.sqrt(num); i++) {
if(num % i === 0) return false;
}
return true;
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - [3์ฐจ] n์ง์ ๊ฒ์ (0) | 2023.10.26 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - [3์ฐจ] ์์ถ (0) | 2023.10.13 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ธ์ด์ ํ (0) | 2023.09.13 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ์ ์ผ๊ฐํ (0) | 2023.09.12 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ค์ ์๋ ํฐ ์ ์ฐพ๊ธฐ (0) | 2023.08.22 |