ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
๋ฌธ์ ์ค๋ช
1๋ถํฐ ์ ๋ ฅ๋ฐ์ ์ซ์ n ์ฌ์ด์ ์๋ ์์์ ๊ฐ์๋ฅผ ๋ฐํํ๋ ํจ์, solution์ ๋ง๋ค์ด ๋ณด์ธ์.
์์๋ 1๊ณผ ์๊ธฐ ์์ ์ผ๋ก๋ง ๋๋์ด์ง๋ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
(1์ ์์๊ฐ ์๋๋๋ค.)
์ ํ ์กฐ๊ฑด
- n์ 2์ด์ 1000000์ดํ์ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
nresult
10 | 4 |
5 | 3 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
1๋ถํฐ 10 ์ฌ์ด์ ์์๋ [2,3,5,7] 4๊ฐ๊ฐ ์กด์ฌํ๋ฏ๋ก 4๋ฅผ ๋ฐํ
์
์ถ๋ ฅ ์ #2
1๋ถํฐ 5 ์ฌ์ด์ ์์๋ [2,3,5] 3๊ฐ๊ฐ ์กด์ฌํ๋ฏ๋ก 3๋ฅผ ๋ฐํ
๋ฌธ์ ํ์ด
์์๋ฅผ ์ฐพ๋ ์ฐ์ฐ์ ์ผ์ ์ ํ์๋ ๋ค์ง์ ์์ ๋ฌธ์ ์ ๊ฐ์๋ค.
์ฝ๋
function isPrime(n) {
for(let i = 2; i <= Math.sqrt(n); i++) {
if(n % i === 0) return false;
}
return true;
}
function solution(n) {
var answer = 0;
for(let i = 2; i <= n; i++) {
if(isPrime(i)) answer++;
}
return answer;
}
์ค๋ต
์ ํ๋ ํ ์คํธ๋ ๋ชจ๋ ๋ค ๋ง์ณค์ผ๋ ํจ์จ์ฑ ํ ์คํธ์์ ์๊ฐ ์ด๊ณผ๋ก ์ค๋ต์ผ๋ก ์ฒ๋ฆฌ๋์๋ค.
๊ตฌ๊ธ๋งํด๋ณธ ๊ฒฐ๊ณผ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ค์ฌ์ผ๋ง ํจ์จ์ฑ ํ ์คํธ๋ฅผ ํต๊ณผํ ์ ์๋ ๋ฌธ์ ์๋ค.
์๋ผํ ์ค๋ค์ค์ ์ฒด
- ์ฃผ์ด์ง ์ซ์ ๊ฐ์ ๋ฒ์ ์์์, ์๊ธฐ ์์ ์ ์ ์ธํ ๋ฐฐ์ ๊ฐ์ ์ญ์
- ์ ์ฐ์ฐ ๊ณผ์ ํ ์์๋ง ๋จ๊ฒ ๋จ
- ์ ๋ ฅ ๋ฐ์ ์ซ์๊น์ง์ ์ ์ ์ค ์์์ ๊ฐ์๋ฅผ ๊ตฌํด์ผ ํ ๊ฒฝ์ฐ์ ์ฉ์ด
์ฝ๋
let solution = (n) => {
let arr = Array(n+1).fill(1).fill(0, 0, 2); //์์์ ์กฐ๊ฑด์ด ์๋ 0๊ณผ 1์ ์ฌ์ ์ false
for(let i=2; i*i<=n; i++){
if(arr[i]){ //์์ ๋ฐฐ์์ ์ฐ์ฐ ๊ณผ์ ์์ ๊ตฌํด์ก๋ค๋ฉด
for(let j=i*i; j<=n; j+=i){ //๋ฐฐ์ ๊ณฑํ๊ธฐ
arr[j] = 0;
}
}
}
return arr.filter((e, _) => e).length;
}
'์๊ณ ๋ฆฌ์ฆ > ํ๊ทธ ๋ณ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ค์ ํฐ ์ซ์_toString()์ผ๋ก ์ง์ ํํ (0) | 2021.10.21 |
---|---|
[์์ ํ์]์นดํซ (0) | 2021.10.10 |
[๊ทธ๋ฆฌ๋]๊ตฌ๋ช ๋ณดํธ (0) | 2021.09.04 |
[์ ํด๋ฆฌ๋ ํธ์ ๋ฒ]์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (0) | 2021.09.03 |
[๋ ์ ์๊ณ ๋ฆฌ์ฆ]๋์ ๊ตํ (0) | 2021.08.17 |