728x90
문제
두 개의 이진수를 입력받아 이를 더하는 프로그램을 작성하시오.
입력
첫째 줄에 두 개의 이진수가 빈 칸을 사이에 두고 주어진다. 각 이진수는 1 또는 0으로만 이루어져 있으며, 0으로 시작할 수도 있다. 또한 각 이진수의 길이는 80을 넘지 않는다.
출력
첫째 줄에 이진수 덧셈 결과를 출력한다. 결과가 0인 경우를 제외하고는 출력되는 이진수는 항상 1로 시작해야 한다.
풀이
주어지는 이진수의 값의 길이가 80이기에, Int는 물론, Long의 범위마저 벗어나는 크기이다.
BigInteger를 이용하여 입력받을때 2진수로 입력받는 방법을 이용하여 2진수에서 10진수로의 값을 계산한다.
두 개의 이진수를 입력받고, BigInteger.add()를 이용하여 두 값을 더한 후 출력시 이진수로 출력을 한다.
코드
import java.math.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger a = new BigInteger(sc.next(), 2), b=new BigInteger(sc.next(),2);
System.out.println(a.add(b).toString(2));
}
}
728x90
728x90
'Algorithm > Baekjoon' 카테고리의 다른 글
Baekjoon 10833 사과 JAVA (0) | 2022.08.01 |
---|---|
Baekjoon 10799 쇠막대기 JAVA (0) | 2022.08.01 |
Baekjoon 2470 두 용액 JAVA (0) | 2022.07.24 |
Baekjoon 12094 2048 (Hard) JAVA (0) | 2022.07.24 |
Baekjoon 2170 선 긋기 JAVA (0) | 2022.07.24 |
댓글