[백준] 10757번 - 큰 수 A + B
2022. 7. 12. 12:24ㆍ백준/Java
문제로 가는 링크: https://www.acmicpc.net/problem/10757
등급: 브론즈5
알고리즘 분류: 수학, 구현, 사칙연산, 임의 정밀도/ 큰 수 연산
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 256 MB | 65123 | 29345 | 25498 | 48.581% |
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A,B < 10^10000)
출력
첫째 줄에 A+B를 출력한다.
문제 이해
A와 B의 범위는 long의 범위인 2^63-1을 훨씬 초과한다.
따라서 기본 타입의 의존해서는 문제 풀이에서 오버플로우가 발생하게 된다.
Java 의 java.math.BigInteger에서는
BigInteger라는 클래스를 제공하는데 이 자료형에 담을 수 있는 범위는 무한대이다.
아래는 Biginteger의 연산 메서드이다.
add(Biginteger val); // 더하기
subtract(Biginteger val); // 빼기
mutiply(Biginteger val); // 곱하기
devide(Biginteger val); // 나누기
equals(Object x); // 값이 같은지 비교
코드 구현
import java.io.*;
import java.math.BigInteger;
public class Ex10757 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] str = br.readLine().split(" ");
BigInteger A = new BigInteger(str[0]);
BigInteger B = new BigInteger(str[1]);
BigInteger S = A.add(B);
System.out.println(S);
}
}
결과
느낀점
BigInteger를 이용하지 않고, 다른 방법으로 시간과 메모리를 절약할 방법은 없을 지 고민해봐야 겠다.
'백준 > Java' 카테고리의 다른 글
[백준] 2490번 - 윷놀이 (0) | 2022.07.11 |
---|---|
[백준] 5622번 - 다이얼 (0) | 2022.07.10 |