본문 바로가기

Algorithm/Java

[백준알고리즘] 10757번 큰 수 A+B (JAVA)

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 A와 B가 주어진다. (0 < A,B < 1010000)

 

출력

첫째 줄에 A+B를 출력한다.

 

예제

 

풀이

import java.math.BigInteger;
import java.util.Scanner;

public class Boj_10757 {
    public static void main(String[] args) throws java.lang.Exception {
        Scanner sc = new Scanner(System.in);
        BigInteger A = sc.nextBigInteger();
        BigInteger B = sc.nextBigInteger();

        System.out.println(A.add(B));
    }
}

문제가 너무 간단해서 뭐지? 했는데 세상은 그렇게 녹록치 않았다. 

 

Type 범위
int -2,147,483,648 ~ 2,147,483,647
long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

제일 큰 범위라고 알고있는 long type의 범위를 찾아보니 주어진 문제의 범위보다 큰 상황.
그래서 검색해보니 java에 BigInteger라는 클래스를 임포트해서 사용하면 된다.
무한의 정수가 들어갈 수 있는 가능성이 있다면 BigInteger를 활용하는 것이 좋다.

덧셈은 위의 코드처럼 A.add(B)로 써주면 된다.
BigInteger은 문자열이기에 사칙연산이 안되기 때문에 내부의 숫자를 계산하기 위해서는 BigIntger 클래스 내부에 있는 메서드를 사용한다.

연산 사용법
덧셈 A.add(B);
뺄셈 A.subtract(B);
곱셈 A.multiply(B);
나눗셈 A.divide(B);
나머지 A.remainder(B);

 

참고

coding-factory.tistory.com/604

 

[Java] 큰 숫자(정수) 다루기 BigInteger 사용법 & 예제 총정리

BigInteger를 사용해야 하는 이유 Type 범위 int -2,147,483,648 ~ 2,147,483,647 long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 int는 메모리 크기는 4byte로 표현할 수 있는 범위는 -2,147,483,..

coding-factory.tistory.com

 


출처

www.acmicpc.net/problem/10757

 

10757번: 큰 수 A+B

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

반응형