-
[๋ฐฑ์ค] 24266๋ฒ: ์๊ณ ๋ฆฌ์ฆ ์์ - ์๊ณ ๋ฆฌ์ฆ์ ์ํ ์๊ฐ 5 (Node.js)๐ ์๊ณ ๋ฆฌ์ฆ/๋ฐฑ์ค 2024. 9. 10. 15:05
์ ๊ทผ๋ฐฉ์
๋๋ฆ ์ผ์คfor๋ฌธ์ผ๊ฑฐ๋ ํด์ ์ฝ๊ฒ ์๊ฐํ๋๋ฐ, ์๊พธ ํ๋ฆฌ๋๋ผ๊ตฌ์...๐ฐ
์ด๊ฑด ์ ํ๋ฆฐ ์ฝ๋์ ๋๋ค.
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; rl.on("line", function (line) { input.push(line); }).on("close", function () { // MenOfPassion(A[], n) { // sum <- 0; // for i <- 1 to n // for j <- 1 to n // for k <- 1 to n // sum <- sum + A[i] × A[j] × A[k]; # ์ฝ๋1 // return sum; // } let n = input[0]; n = Math.pow(n, 3) console.log(n); console.log(3); });
๋ค์ ๋ฌธ์ ๋ฅผ ๋ณด๋ฉฐ, ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น ๋ดค๋๋
์ต๋๊ฐ์ด 500,000์ผ ๊ฒฝ์ฐ number ํ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ์์ฒญ ํฐ ๊ฐ์ด ๋์ฌ ๊ฒ ๊ฐ๋๋ผ๊ตฌ์.
์์ธํ๊ฒ๋ ์ด๋ ์ต๋๋ค.
JavaScript์ number ํ์ ์ 53๋นํธ ๋ถ๋์์์ ์ซ์๋ฅผ ์ฌ์ฉํ๋ฉฐ,
์ฝ 9,007,199,254,740,991๊น์ง ์ ํํ๊ฒ ํํํ ์ ์๋ค๊ณ ํฉ๋๋ค.
ํ์ง๋ง 500,000์ ์ธ์ ๊ณฑ์ ๋งค์ฐ ํฐ ์์ธ 125,000,000,000,000,000(125์กฐ)๋ก,
JavaScript์ ๊ธฐ๋ณธ number ํ์ ์ผ๋ก๋ ์ ํํ๊ฒ ํํํ๊ธฐ ์ด๋ ต๋ค๊ณ ํฉ๋๋ค.
์ด ๋๋ฌธ์ BigInt๋ฅผ ์ฌ์ฉํ์ฌ ํฐ ์ ์๋ฅผ ๋ค๋ฃจ์ด์ผ ํ์ต๋๋ค.
BigInt ๋?
JavaScript์์ ๋งค์ฐ ํฐ ์ ์๋ฅผ ํํํ๊ณ ์ฐ์ฐํ ์ ์๋ ๋ฐ์ดํฐ ํ์ ์ ๋๋ค.
์ฆ, number ํ์ ์ด ๋ค๋ฃฐ ์ ์๋ ๋ฒ์๋ฅผ ๋์ด์๋ ํฐ ์ซ์๋ BigInt๋ก ๋์ผํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ BigInt ํ์ ์ ์ซ์๋ฅผ ์ ์ธํ ๋๋ ์ซ์ ๋ค์ n์ ๋ถ์ฌ์ฃผ๋ ํน์ง์ด ์์ต๋๋ค.ํ์ด โฐ
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; rl.on("line", function (line) { input.push(line); }).on("close", function () { // MenOfPassion(A[], n) { // sum <- 0; // for i <- 1 to n // for j <- 1 to n // for k <- 1 to n // sum <- sum + A[i] × A[j] × A[k]; # ์ฝ๋1 // return sum; // } // Numberํ์ ์ ๋ฐ์ด๋๋ ํฐ ์ ์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด BigInt์ฌ์ฉ let n = BigInt(input[0]); // 3์ ๊ณฑ (3n์ ์ฐ๋ ์ด์ ๋ BigInt๊ฐ ์ ๋ ฅ์ด 7์ด๋ฉด 7n์ผ๋ก ๊ณ์ฐ๋๊ธฐ ๋๋ฌธ) n = n ** 3n; console.log(n.toString()); console.log(3); });
๋ฐฑ์ค 24266๋ฒ ๋งํฌ
'๐ ์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ