728x90
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B (-1010000 ≤ A, B ≤ 1010000)가 주어진다.
출력
첫째 줄에 A+B를 출력한다.
서브태스크 1 (5점)
- 0 ≤ A, B ≤ 10
서브태스크 2 (10점)
- -100 ≤ A, B ≤ 100
서브태스크 3 (10점)
- 0 ≤ A, B ≤ 109
서브태스크 4 (15점)
- -109 ≤ A, B ≤ 109
서브태스크 5 (15점)
- 0 ≤ A, B ≤ 260
서브태스크 6 (20점)
- -260 ≤ A, B ≤ 260
서브태스크 7 (20점)
- 0 ≤ A, B ≤ 1010000
서브태스크 8 (5점)
- -1010000 ≤ A, B ≤ 1010000
예제 입력 1 복사
1 2
예제 출력 1 복사
3
예제 입력 2 복사
-60 40
예제 출력 2 복사
-20
예제 입력 3 복사
-999999999 1000000000
예제 출력 3 복사
1
예제 입력 4 복사
1099511627776 1073741824
예제 출력 4 복사
1100585369600
예제 입력 5 복사
123456789123456789123456789 987654321987654321987654321
예제 출력 5 복사
1111111111111111111111111110
문제는 단순히 A+B를 구하는 문제이다.
하지만 A와 B의 범위가 기본 자료형으론 표현이 불가능한 범위라는 점이 문제점이다.
C++로 풀기위해선 String을 이용해서 이것저것 귀찮게 구현해야하는데,
Java는 BigInteger란 자료형이 이미 구현되어 있어서, 덕분에 편하게 문제를 해결할 수 있었다.
코드 원본 : https://github.com/chosh95/Java/blob/master/project/tmp/src/tmp/AB_9.java
JAVA 코드
import java.math.BigInteger;
import java.util.Scanner;
public class AB_9 {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
BigInteger A, B, res;
A = scanner.nextBigInteger();
B = scanner.nextBigInteger();
res = A.add(B);
System.out.println(res);
}
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 녹색 옷 입은 애가 젤다지? (4485번) (0) | 2020.05.03 |
---|---|
[백준] 카드 1 (2161번) (0) | 2020.05.02 |
[백준] 나무 조각 (2947번) (0) | 2020.05.01 |
[백준] TV 크기 (1297번) (0) | 2020.05.01 |
[백준] 가운데를 말해요 (1655번) (0) | 2020.03.23 |