BOJ[10757] - 큰 수 A + B by JavaScript
큰 수 A + B
문제
언어
- JavaScript
순서도
- 두 정수를 BigInt 타입으로 변환
- 변환한 두 정수의 합 구하기
- 구한 합을 문자열 형태로 변환 후 출력
문제 풀이 step 1
- Number 객체는 숫자 값으로 작업할 수 있게 해주는 래퍼 객체입니다.
- Number 로 표현할 수 있는 안전한 최대 정수는
2 ^ 53 - 1이고, 안전한 최소 정수는- (2 ^ 53 - 1)입니다.console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991 console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991- 약
- (9 * 10 ^ 15) ~ (9 * 10 ^ 15)의 범위를 안전하게 표현할 수 있습니다.
- 약
- 문제에서 주어지는 A 와 B 의 범위는
0 ~ 10 ^ 10000으로 Number 로 안전하게 표현할 수 있는 범위를 넘어갑니다. - 따라서 이 경우에는 BigInt 를 사용해야 합니다.
- BigInt 는 Number 원시 값이 안정적으로 나타낼 수 있는 최대치인
2 ^ 53 - 1보다 큰 정수를 표현할 수 있는 내장객체입니다. - 주어지는 두 정수 A 와 B 를 BigInt 형으로 변환하고, 합한 다음에 결과값을 문자열의 형태로 변환해서 출력하면 정답이 됩니다.
- 문자열로 변환을 하는 이유는 정수 리터럴 뒤에 n 이 붙기 때문에 문제에서 원하는 출력 형식에 맞추려면 문자열로 변환해야 합니다.
Reference.
- https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number
- https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/BigInt
소스 코드
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const solution = (input) => {
const [a, b] = input[0].split(" ").map(BigInt);
return (a + b).toString();
};
console.log(solution(input));