function solution(n) {
let filterArr = [...new Array(n+1).keys()]
for (let i = 2; i <= Math.sqrt(n); i++) {
if (filterArr[i]) {
for (let j = i * i; j <= n; j += i) {
filterArr[j] = false;
}
}
}
return filterArr.filter((x) => !!x === true).length - 1;
}
๋ฐฑ์ค์์๋ ํ์๋ ์์ ์ฐพ๊ธฐ ๋ฌธ์
์๋ผํ ์คํ
๋ค์ค์ ์ฒด๋ฅผ ๊ธฐ์ตํ์
๊ธฐ์ตํด์ผํ ๊ฒ
- ์ฃผ์ด์ง ์ซ์ n์ ๋ํด์ n์ ์ ๊ณฑ๊ทผ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์๊น์ง๋ง ์์๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ค. n์ ์ ๊ณฑ๊ทผ๋ณด๋ค ํฐ ์์์ ๊ฒฝ์ฐ์๋ ์ด์ฐจํผ ์์ ์์๋ค๋ก์ธํด ๋ณธ์ธ ์ ๊ณฑ์ธ ์ ๋ค๋ถํฐ false๋ก ๋ฐ๊พธ๊ฒ ๋๋๋ฐ, ๋ณธ์ธ ์ ๊ณฑ์ด n๋ณด๋ค ํฌ๋ค๋ฉด ์ด์ฐจํผ ๋ฐฐ์ด์ ์๋ ์ซ์์ด๊ธฐ ๋๋ฌธ
- ๊ฐ ์์์ ์ ๊ณฑ ์ดํ์ ๋ฐฐ์๋ค๋ง false ์ฒ๋ฆฌํ๋ฉด ๋๋ค.
ex) 2 -> 2์ ์ ๊ณฑ์ธ 4์ ๋ฐฐ์๋ถํฐ ์ ๋ถ ๋ค false ์ฒ๋ฆฌ, 3 -> ๋ง์ฝ ์ ๊ณฑ์๋ถํฐ ์ํ๋ฉด 6๋ถํฐ false ์ฒ๋ฆฌํด์ผํ๋๋ฐ ์์ฐ์ค๋ฝ๊ฒ ์ด์ ์์์ธ 2๋ก ์ธํด 6์ false ์ฒ๋ฆฌ๊ฐ ๋์ด์๋ค. ์ด๋ฐ ์์ผ๋ก ์์ ๋ณธ์ธ ์ ๊ณฑ ์ด์์ ๋ฐฐ์๋ค๋ง ํ์ธํด์ฃผ๋ฉด ๋๋ค. - ๋ฐฐ์ด์ ๊ธธ์ด์ ์์ง 0๊ณผ 1๋ ๋ค์ด์๋ค๋ ๊ฒ์ ๊ธฐ์ตํด์ return ๊ฐ์ ์กฐ์ ํด์ฃผ์
์์ ๊ฒฝ์ฐ์ filter ํจ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ด false์ธ ๊ฐ๋ค์ ์ฒ๋ฆฌ(์ด ๋, 0๋ false์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ์ฒ๋ฆฌ), ๊ฒฐ๊ตญ ๋จ์ ๋ฐฐ์ด์์ ์ ๊ฑฐํด์ค์ผํ ๊ฐ์ 1์ด ๋จ์์๋ค. ํด์ length์์ -1 ์ ํด์ค๋ค.
[์ฐธ๊ณ : ์๋ผํ ์คํ
๋ค์ค์ ์ฒด๋ฅผ ์ฝ๊ฒ ์ค๋ช
](https://namu.wiki/w/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98%20%EC%B2%B4) [์ฐธ๊ณ : ๋ฐฑ์ค์์ ํ์๋ ์์ ์ฐพ๊ธฐ](https://jayden1116.tistory.com/599)
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] 2018์นด์นด์ค - ๋คํธ ๊ฒ์ (0) | 2022.06.28 |
---|---|
[JS] ์ฐ์ต๋ฌธ์ - ๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ (0) | 2022.06.26 |
[JS] ์ฐ์ต๋ฌธ์ - ์๋ฐ์๋ฐ์๋ฐ์? (0) | 2022.06.24 |
[JS] ์ฐ์ต๋ฌธ์ - ์์ ์ํธ (0) | 2022.06.24 |
[JS] ์ฐ์ต๋ฌธ์ - ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (0) | 2022.06.23 |