Algorithm
- ๋ง์ทจํ ์๋ฒ -
๋ฌธ์
์๊ฐ๋ํ๊ต ๊ณค์๊ฐ ๊ธฐ์์ฌ์ ์งํ์๋ n๊ฐ์ ๋ฐฉ์ด ์ผ๋ ฌ๋ก ๋์ด์ ๊ฐ์ฅ์ด ์๋ค. ๊ฐ ๋ฐฉ์๋ ๋ฒ์ ์ ๋ง์ด ๋ฐ์ ํ์์ด ๊ตฌ๊ธ๋์ด์๋ค.
๊ทธ๋ฌ๋ ์ด๋ ๋ , ๊ฐ์ฅ ๊ฐ์์ธ ์๋ฒ์ด๋ ์ง๋ฃจํ ๋๋จธ์ง ์ ์ ๋๊ฐ ๊ฒ์์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๊ฒ์์ ์ฒซ ๋ฒ์งธ ๋ผ์ด๋์์ ์๋ฒ์ด๋ ์์คํค๋ฅผ ํ ์ ๋ค์ดํค๊ณ , ๋ฌ๋ ค๊ฐ๋ฉฐ ๊ฐ์ฅ์ ํ ๊ฐ์ฉ ๋ชจ๋ ์ฐ๋ค. ๊ทธ ๋ค์ ๋ผ์ด๋์์๋ 2, 4, 6, ... ๋ฒ ๋ฐฉ์ ๋ค์ ์ ๊ทธ๊ณ , ์ธ ๋ฒ์งธ ๋ผ์ด๋์์๋ 3, 6, 9, ... ๋ฒ ๋ฐฉ์ด ์ด๋ ค์์ผ๋ฉด ์ ๊ทธ๊ณ , ์ ๊ฒจ์๋ค๋ฉด ์ฐ๋ค. k๋ฒ์งธ ๋ผ์ด๋์์๋ ๋ฒํธ๊ฐ k์ ๋ฐฐ์์ธ ๋ฐฉ์ด ์ด๋ ค ์์ผ๋ฉด ์ ๊ทธ๊ณ , ์ ๊ฒจ ์๋ค๋ฉด ์ฐ๋ค. ์ด๋ ๊ฒ n๋ฒ์งธ ๋ผ์ด๋๊น์ง ์งํํ ์ดํ, ์๋ฒ์ด๋ ์์คํค์ ๋ง์ง๋ง ๋ณ์ ๋ง์๊ณ ์ฐ๋ฌ์ ธ ์ ๋ ๋ค.
๊ตฌ๊ธ๋์ด์๋ ๋ช ๋ช (์ด์ฉ๋ฉด 0๋ช )์ ํ์๋ค์ ์์ ์ ๋ฐฉ์ ์ ๊ทธ์ง ์์ ์ฑ ์๋ฒ์ด๊ฐ ์ฐ๋ฌ์ ธ๋ฒ๋ ธ๋จ ๊ฒ์ ๊นจ๋ซ๊ณ ์ฆ์ ๋๋ง์น๋ค.
๋ฐฉ์ ๊ฐ์๊ฐ ์ฃผ์ด์ก์ ๋, ๋ช ๋ช ์ ํ์๋ค์ด ๋์ฃผํ ์ ์๋์ง ์์๋ณด์.
์ ์ถ๋ ฅ ์์
๋ฌธ์ ํ๊ธฐ
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function (line) {
input.push(+line.toString());
}).on("close", function () {
input.shift();
let result = [];
for (let i = 0; i < input.length; i++) {
// prison 0๋ฒ์งธ๋ index ๋ง์ถ๊ธฐ
let prison = new Array(input[i] + 1).fill(true);
for (let j = 2; j <= input[i]; j++) {
for (let k = j; k <= input[i]; k += j) {
prison[k] = !prison[k];
}
}
result.push(prison.filter((el) => el === true).length - 1);
}
console.log(result.join("\n"));
process.exit();
});
'๊ฐ์ธ๊ณต๋ถ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค][Node.js] 6679๋ฒ : ์ฑ๊ธฐํ ๋ค์๋ฆฌ ์ซ์ (0) | 2021.12.06 |
---|---|
[๋ฐฑ์ค][Node.js] 6603๋ฒ : ๋ก๋ (0) | 2021.12.04 |
[๋ฐฑ์ค][Node.js] 6064๋ฒ : ์นด์ ๋ฌ๋ ฅ (0) | 2021.12.02 |
[๋ฐฑ์ค][Node.js] 5988๋ฒ : ํ์์ผ๊น ์ง์์ผ๊น (0) | 2021.12.01 |
[๋ฐฑ์ค][Node.js] 5717๋ฒ : ์๊ทผ์ด์ ์น๊ตฌ๋ค (0) | 2021.11.30 |
๋๊ธ