๋ฐฑ์ค 15740, A+B - 9, 40์ ๋ง์ ์ด์ , node.js
๋ฐฑ์ค 15740, A+B - 9 ๋ฌธ์ ๋ฅผ ํ์๋๋ฐ 40์ ์ด ๋์๋ค.
์ฒ์์๋ ์ 40์ ๋ง ๋ง์๋์ง ์ดํด๊ฐ ๋์ง ์์๋๋ฐ ์ด๋ฒ์ ์๋กญ๊ฒ ์๊ฒ ๋ ๋ด์ฉ์ด ์์ด์ ์ ๋ฆฌํ๋ค.
๋ฌธ์
๋ ์ ์ A์ B๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์, A+B๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ A์ B (-1010000 ≤ A, B ≤ 1010000)๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ A+B๋ฅผ ์ถ๋ ฅํ๋ค.
์๋ธํ์คํฌ
1 | 5 | 0 ≤ A, B ≤ 10 |
2 | 10 | -100 ≤ A, B ≤ 100 |
3 | 10 | 0 ≤ A, B ≤ 109 |
4 | 15 | -109 ≤ A, B ≤ 109 |
5 | 15 | 0 ≤ A, B ≤ 260 |
6 | 20 | -260 ≤ A, B ≤ 260 |
7 | 20 | 0 ≤ A, B ≤ 1010000 |
8 | 5 | -1010000 ≤ A, B ≤ 1010000 |
40์ ๋์จ ์ฝ๋
const fs = require("fs");
const [a, b] = fs.readFileSync("test.txt").toString().trim().split(" ");
const bigA = BigInt(a);
const bigB = BigInt(b);
console.log(bigA + bigB);
100์ ๋์จ ์ฝ๋
const fs = require("fs");
const [a, b] = fs.readFileSync("/dev/stdin").toString().trim().split(" ");
const bigA = BigInt(a);
const bigB = BigInt(b);
console.log((bigA + bigB).toString());
โฅ ์ด ๋ฌธ์ ๋ฅผ 100์ ๋ง์ผ๋ ค๋ฉด BigInt ํ์ ์ ํ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ๊ณ , ์ด๋ฅผ string ํ์ ์ผ๋ก ๋ฐ๊ฟ์ฃผ์ด์ผํฉ๋๋ค.
๊ทธ ์ด์ ๋ BigInt๋ Number ์์๊ฐ์ด ์์ ์ ์ผ๋ก ๋ํ๋ผ ์ ์๋ ์ต๋์น์ธ 2^53 - 1๋ณด๋ค ํฐ ์ ์๋ฅผ ํํํ ์ ์๋ ๋ด์ฅ ๊ฐ์ฒด์ ๋๋ค.
BigInt๋ฅผ ์จ์ฃผ๊ณ String์ผ๋ก ์ ์ธํด์ผํ๋ค๊ณ ํฉ๋๋ค. (์ด ๋ถ๋ถ์ ์ถ๊ฐ์ ์ผ๋ก ๊ณต๋ถํด์ผ ํ ๋ถ๋ถ ์ ๋๋ค. )

์ฐธ๊ณ )
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/BigInt