본문 바로가기
백준

[백준] 2338번 : 긴자리 계산 – JAVA [자바]

by Hongwoo 2023. 2. 27.
반응형

https://www.acmicpc.net/problem/2338

 

2338번: 긴자리 계산

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 2338번 긴자리 계산은 브론즈 5 난이도의 수학 문제이다. 이 문제는 되게 간단하다. 이 문제에서는 입력으로 2개의 수 A, B가 주어지고, A + B, A - B, 그리고 A * B의 값을 구하면 된다.

 

이 문제는 되게 간단하나, 정답률은 50%가 안 된다. 아마도 이 이유는 입력으로 주어진 수가 상당히 클 수가 있기 때문일 것이다. 따라서, int나 long을 써도 int나 long의 범위를 넘어가는 수가 입력으로 주어질 수 있다.

 

따라서, 이 문제는 BigInteger를 이용해서 풀면 된다.

 

우선 두 수를 BigInteger로 입력받고 BigInteger 클래스에 있는 add, subtract, 그리고 multiply 함수를 이용해서 풀면 된다.

 

자세한 코드는 아래에 있는 코드를 참고하면 되겠다.

 

 


  • 코드

 

import java.io.*;
import java.math.BigInteger;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BigInteger a = new BigInteger(br.readLine());
        BigInteger b = new BigInteger(br.readLine());
        System.out.println(a.add(b));
        System.out.println(a.subtract(b));
        System.out.print(a.multiply(b));
    }
}

 

 

반응형

댓글