๐ ๋ฌธ์
์ฝ์์ ๊ฐ์๊ฐ ์ธ ๊ฐ ์ด์์ธ ์๋ฅผ ํฉ์ฑ์๋ผ๊ณ ํฉ๋๋ค. ์์ฐ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ n์ดํ์ ํฉ์ฑ์์ ๊ฐ์๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ ์ ํ์ฌํญ
- 1 ≤ n ≤ 100
๐ ์ ์ถ๋ ฅ ์
n result
10 5
15 8
๐ ์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- 10 ์ดํ ํฉ์ฑ์๋ 4, 6, 8, 9, 10 ๋ก 5๊ฐ์ ๋๋ค. ๋ฐ๋ผ์ 5๋ฅผ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- 15 ์ดํ ํฉ์ฑ์๋ 4, 6, 8, 9, 10, 12, 14, 15 ๋ก 8๊ฐ์ ๋๋ค. ๋ฐ๋ผ์ 8์ returnํฉ๋๋ค.
๐ง ํ์ด
function solution(n) {
// ํฉ์ฑ์๋ฅผ ์ฐพ๋๋ค๋ ๊ฒ์ ๊ณง ์์๋ฅผ ์ฐพ์์ ์ ์ธํ๋ ๊ฒ์ด๋ผ ๋ด๋ ๋๋ค.
// ์์๋ฅผ ์ฐพ์ผ๋ ค๋ฉด? ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ง๋ง ์๋ผํ ์คํ
๋ค์ค์ ์ฒด๋ฅผ ์จ๋ณด์.
// ๊ธธ์ด๊ฐ n์ธ ๋ฐฐ์ด ์ ์ธ
let arr = new Array(n).fill(0);
// 2๋ถํฐ ์์ํ์ฌ ํน์ ์์ ๋ฐฐ์์ ํด๋นํ๋ ์๋ฅผ ๋ชจ๋ ์ง์ด๋ค.
for (let i = 2; i <= n; i++) {
// ์ด๋ฏธ ์ง์์ง ์๋ผ๋ฉด ๊ฑด๋๋ด๋ค.
if(arr[i]==-1) continue;
// ๋ฐฐ์๋ถํฐ ์ถ๋ฐํ์ฌ, ๊ฐ๋ฅํ ๋ชจ๋ ์ซ์๋ฅผ ์ง์ด๋ค.
for (let j = 2*i; j<=n; j+=i) {
arr[j] = -1;
}
}
// ํฉ์ฑ์์ ๊ฐฏ์๋ -1์ ๊ฐ์ผ๋ก ๊ฐ์ง๋ ์์์ ๊ฐฏ์๋ ๋์ผํ๋ค.
return arr.filter(e => e == -1).length;
}
'๐งฉ Algorithm > ๐ง JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํฉํ ๋ฆฌ์ผ (0) | 2023.04.10 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ต๋๊ฐ ๋ง๋ค๊ธฐ (1) (0) | 2023.04.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฃผ์ฌ์์ ๊ฐ์ (0) | 2023.04.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฐฐ์ด ํ์ ์ํค๊ธฐ (0) | 2023.04.06 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ณต ๋์ง๊ธฐ (0) | 2023.04.06 |