[Baekjoon] 2338. 긴자리 계산

mori·2024년 9월 5일
post-thumbnail

문제 링크
https://www.acmicpc.net/problem/2338

Problem 💻


문제

두 수 A, B를 입력받아, A+B, A-B, A×B를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 A가, 둘째 줄에 B가 주어진다. 각각의 수는 10진수로 1,000자리를 넘지 않으며 양수와 음수가 모두 주어질 수 있다.

출력

첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미).

출력 예시

예제 입력

1
-1

예제 출력

0
2
-1

Approach

알고리즘

입력 → 연산 → 출력

의문점

  1. BigInt


    • 일반 정수 타입 사용 시 숫자가 1000자리라면 숫자를 정확하게 처리할 수 없다.
    • 숫자가 너무 커서 넘버 타입이 처리할 수 있는 범위를 초과하면 잘못된 결과가 나올 수 있다.

요약

  • 숫자가 커질 수 있다면 BigInt를 사용하자!

Solution 💡

const num = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const a = BigInt(num[0]);
const b = BigInt(num[1]);

console.log((a + b).toString());
console.log((a - b).toString());
console.log((a * b).toString());

Reference 📄

BigInt

profile
지식을 나눠요 📓

0개의 댓글