# [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
1

# Output

18446744073709551615
1

# Solution

# Solution 1 (์‹คํŒจ)

const input = require('fs').readFileSync('dev/stdin').toString().trim().split(' ').map(Number);
console.log(input.reduce((a + b) => a + b);
1
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());
1
2
3
Last Updated: 2022. 6. 5. ์˜คํ›„ 3:42:39