๋ฌธ์ ๋ด์ฉ
ํ์ด๐๐ปโ๏ธ
const primeNumber = (x) => {
for (let i = 2; i <= Math.sqrt(x); i++) {
if (x % i === 0) return false;
}
return true;
};
function solution(n) {
let result = 0;
for (let i = 2; i <= n; i++) {
if (primeNumber(i)) result++;
}
return result;
}
/*
(ํ์ด)
์ด๋ฒ์๋ ํผ์ ํ๊ธฐ ์คํจ. sqrt๊ฐ ์ ๊ณฑ๊ทผ์ด๊ณ ๋ฃจํธ๋ฅผ ์์ด๋ค๋๊ฑด ์๊ฒ ๋๋ฐ ํ .. ์ด๋ ต๋ค..
์คํจํ์ด
function solution(n) {
let result = [];
const primeNumber = (x) => {
for (let i = 2; i <= Math.sqrt(x); i++) {
if (x % i === 0) return false;
}
return true;
};
for (let i = 2; i <= n; i++) {
if (primeNumber(i)) result += i;
}
return result.length;
}
์ด๊ฒ์ ๊ฒ ์ฐธ๊ณ ํ๋ฉฐ ์ด๋ ๊ฒ ํ์ด์์ฑํ์ง๋ง ํจ์จ์ฑ์์ ์คํจ.
๊ฒฐ๊ตญ ๋ค๋ฅธ ๋ต์ง๋ฅผ ๋ณด๊ณ result๋ฅผ ์นด์ดํธํ๋ ์์ผ๋ก ๋ณ๊ฒฝํ๋ค.
ํจ์๋ฅผ ์ด์ฉํด์ ๋งค๊ฐ๋ณ์ x๋ฅผ ๋ฐ์ for๋ฌธ์ ๋๋ ค์ฃผ๊ณ x๊ฐ i์ ๋ฐฐ์์ฌ์ ๋๋จธ์ง๊ฐ 0 ์ด๋ฉด
false ๋ฆฌํด ์๋๊ฒฝ์ฐ true๋ฅผ ๋ฆฌํดํ๊ฒ ํด์ฃผ๊ณ if๋ฌธ์ ์ด์ฉํด์ ํจ์๊ฐ true์ผ๋๋ง result๋ฅผ ์ฌ๋ ค์ค์
๊ฐ์๋ฅผ ๋ง์ถฐ์คฌ๋ค.
์ดํด๊ฐ ์๊ฐ๋ ๋ถ๋ถ์ด ๋ง์๋ฐ primeNumberํจ์์์ for๋ฌธ์ ๋๋ฆด ๋
์กฐ๊ฑด์์์ x์ ๋ฃจํธ๊ฐ i๋ณด๋ค ํด ๊ฒฝ์ฐ for๋ฌธ์ด ๋์๊ฐ๋๋ฐ
1.4142135623730951 ๋ฃจํธ2์ผ๋
1.7320508075688772 ๋ฃจํธ3์ผ๋
2.23606797749979 ๋ฃจํธ5์ผ๋
2.6457513110645907 ๋ฃจํธ7์ผ๋
์ด๋ ๊ฒ ๋๋ฉด i๋ณด๋ค ์์ผ๋๊น for๋ฌธ์ด ์๋์๊ฐ์ผ ํ๋๊ฑฐ ์๋๊ฐ..?
๋๋ฌดํท๊ฐ๋ฆฐ๋ค..
*/
- ํ๊ณ ๋์๋ ๊ต์ฅํ ํท๊ฐ๋ ธ๋๋ฐ ์ข ์ ๋ฆฌ๊ฐ ๋๋ค. sqrt๋ฉ์๋์ ๋ํด ํ๋ฒ ์ ๋ฆฌ ํ ํ์๊ฐ ์์ ๊ฒ ๊ฐ๋ค
- PrimeNumber ํจ์์์ for ๋ฌธ์ ์กฐ๊ฑด์ด ์๋๋ 2, 3์ true๋ก ๋ฐํํ๊ณ 4, 5, 6, 7, 8 ์ ๋ฃจํธ๋ฅผ ์์ฐ๋ฉด 2.~~~์ด์์ด๋ ๋๋จธ์ง๊ฐ 0์ธ 4, 5, 6, 8 ์ false๋ฅผ ๋ฑ๊ณ ์์์ธ 5, 7 ์ true๋ฅผ ๋ฑ๋๋ค.
- 9๋ถํฐ๋ x์ ๊ฐ๋ 3์ด ๋์ผ๋ for๋ฌธ์ 2๋ฒ ๋์๊ฐ๊ฒ๋๊ณ i๋ 3์ด ๋์ด ๋๋จธ์ง 0 ์กฐ๊ฑด์ ์ฑ๋ฆฝ. false๋ฅผ ๋ฐํํ๋ค.
- ์๋ฒฝํ ์ดํดํ๋ค.
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ด์ฉํ ํ์ด(ํ์๋ถ ํ์ด)
function solution(n) {
const nArr = new Array(n).fill(1);
nArr[0] = 0;
for (let i = 2; i * i <= n; i++) {
for (let j = i * i; j <= n; j += i) {
nArr[j - 1] = 0;
}
}
return nArr.filter((result) => result == 1).length;
}
- ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ ์ํ์์ ์์๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ํ ๋์ค์๋ง์ ๋๋ฌด ์ด๋ ต๋ค,,(์ ๋ณด)
- ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ๊ณต๋ถํ๊ณ ์ ๋ฆฌํด๋ณด์. (์ ๋ฆฌ ๋ด์ฉ)
'์๊ณ ๋ฆฌ์ฆ & ๋ฌธ์ ํ์ด > Programmers-1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ ์ ์ ์ฌ์ด์ ํฉ (0) | 2022.09.01 |
---|---|
๋ถ์กฑํ ๊ธ์ก ๊ณ์ฐํ๊ธฐ (0) | 2022.09.01 |
๋ฌธ์์ด ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2022.08.27 |
๋ฌธ์์ด์ ์ ์๋ก ๋ฐ๊พธ๊ธฐ (0) | 2022.08.26 |
๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ (0) | 2022.08.26 |