문제설명

 

소스코드

import java.math.BigInteger;
import java.util.Scanner;
public class Main 
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        String tempA = sc.next();
        String tempB = sc.next();
        BigInteger A = new BigInteger(tempA, 2);
        BigInteger B = new BigInteger(tempB, 2);
        BigInteger sum = A.add(B);
        System.out.println(sum.toString(2));
    }
}

 

설명

  • 공식 문서를 확인해보면 BigInteger 클래스의 생성자 매개변수는 우리가 흔히 사용하는 String 타입으로 받는 경우와 int 타입 변수 하나를 더 받는 생성자가 있다.
  • 위 사진의 두 번째 생성자를 이용하면 val을 radix진수로 변환할 수 있다.
    즉 val = "10", radix = 2라면 10을 2진수로 변환한 생성자가 생성되는 것이다.
  • BigInteger 타입은 문자열이기 때문에 메소드를 이용해 사칙연산이 가능하다.
    위 코드에서는 add()메소드를 이용해서 A와 B를 더했다.
  • 마지막으로 BigInteger 클래스이 toString()메소드에 정수형 숫자를 인자로 넘기면 해당 진수로 변환이된다.