# [Algorithm/JS] ๋ฐฑ์ค 10757๋ฒ ํฐ ์ A+B
๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ (opens new window)
# Question
๋ ์ ์ A์ B๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์, A+B๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
# Input
์ฒซ์งธ ์ค์ A์ B๊ฐ ์ฃผ์ด์ง๋ค. (0 < A,B < 1010000)
# Output
์ฒซ์งธ ์ค์ A+B๋ฅผ ์ถ๋ ฅํ๋ค.
# Example
# Input
9223372036854775807 9223372036854775808
# Output
18446744073709551615
# Solution
# Solution 1 (์คํจ)
const input = require('fs').readFileSync('dev/stdin').toString().trim().split(' ').map(Number);
console.log(input.reduce((a + b) => a + b);
2
๋ฌธ์ ๋ณด๊ณ ๋๋ฌด ์ฝ๋ค๊ณ ์๊ฐํ๋๋ฐ ์ญ์ ์ฝ๋ค๊ณ ์๊ฐํ๋ฉด ํญ์ ์๊ฐ์ด๊ณผ๋ ์ค๋ต์ฒ๋ฆฌ๊ฐ ๋๋ค. ์ญ์๋ ์ด๋ฒ ๋ฌธ์ ๋ ๊ทธ๋ฌ๋ค.
input ์ ์ถ๋ ฅํด๋ณด๋ฉด ์ ๋ ฅ๊ฐ๊ณผ ์์ดํ๊ฒ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
9223372036854776000 9223372036854776000
์๋ฐ์คํฌ๋ฆฝํธ์ ์ซ์ํ์ ์๋ ํ๊ณ๊ฐ ์์ด ์ ๋ฐํ๊ฒ ์ถ๋ ฅ๋๊ธฐ ์๋๋ค.
Number
ํ์
์ด ์๋ BigInt
ํ์
์ ์ฌ์ฉํด์ผํ๋ค. BigInt ๋ ํฐ ์ซ์๊น์ง ์ ๋ฐ๋์๊ฒ ํํํ ์ ์๋ ํ์
์ด๋ค.
๊ณต์๋ฌธ์ (opens new window)
BigInt
๋ยNumber
ย ์์ ๊ฐ์ด ์์ ์ ์ผ๋ก ๋ํ๋ผ ์ ์๋ ์ต๋์น์ธ 2^53 - 1๋ณด๋ค ํฐ ์ ์๋ฅผ ํํํ ์ ์๋ ๋ด์ฅ ๊ฐ์ฒด์ด๋ค.
BigInt
์ยNumber
๋ ์ด๋ค ๋ฉด์์ ๋น์ทํ์ง๋ง ์ค์ํ ์ฐจ์ด์ ์ด ์์ต๋๋ค. ์์ปจ๋ยBigInt
๋ ๋ด์ฅยMath
ย ๊ฐ์ฒด์ ๋ฉ์๋์ ํจ๊ป ์ฌ์ฉํ ์ ์๊ณ , ์ฐ์ฐ์์ยNumber
์ ํผํฉํด ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋จผ์ ๊ฐ์ ์๋ฃํ์ผ๋ก ๋ณํํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋,ยBigInt
๊ฐยNumber
๋ก ๋ฐ๋๋ฉด ์ ํ์ฑ์ ์์ ์ ์์ผ๋ ์ฃผ์ํด์ผ ํฉ๋๋ค.
BigInt ํ์ ์ ์ถ๋ ฅํ ๋ ๋ฌธ์์ด๋ก ๋ณํํด์ฃผ์ด์ผ ์ซ์ ๋ง์ง๋ง์ n์ด ํจ๊ป ์ถ๋ ฅ๋์ง ์๋๋ค.
# Solution 1 (์ฑ๊ณต)
const fs = require('fs');
const [a, b] = fs.readFileSync('../input.txt').toString().trim().split(' ').map(BigInt);
console.log((a + b).toString());
2
3