문제설명
소스코드
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()메소드에 정수형 숫자를 인자로 넘기면 해당 진수로 변환이된다.
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[Java] 백준 11869번 문제 (님블) (1) | 2023.10.05 |
---|---|
[Java] 백준 11868번 문제 (님 게임2) (1) | 2023.10.05 |
[Java] 백준 1015번 문제 (수열 정렬) (0) | 2023.10.02 |
[Java] 백준 1417번 문제 (국회의원 선거) (0) | 2023.10.01 |
[Java] 백준 1026번 문제 (보물) (0) | 2023.09.21 |