본문 바로가기
코딩 테스트/[JAVA] 백준

[JAVA] 백준 14623번 감정이입

by M개발자 2022. 3. 10.
반응형

감정이입


예제 입출력

 

입력 출력
1010
11
11110
1000
100
100000

 


코드

 

입력에는 두 이진수가 들어오고 두 이진수의 길이는 1 이상 30 이하의 자연수가 들어온다. 

해당 범위는 int의 범위와 long 범위를 벗어났기에 BigInteger로 구현하였다. 

 

 

BigInteger a = scanner.nextBigInteger(2);

 

 2진표현을 포함한 바이트 배열을 BigInteger로 받기 위해 매개변수로 2를 넘겼다. 

 

 

BigInteger multiply = a.multiply(b);

 

multiply() 메소드는 BigInteger의 곱셈의 메소드이다. a와 b의 곱을 multiply 변수에 저장하였다. 

 

 

String answer = multiply.toString(2);

 

toString() 메소드에 매개변수 2를 넘겨 두 자연수의 곱을 이진수로 변환하였다.

→ 입력한 수를 이진수로 받지 않으면 두 자연수의 곱의 값을 이진수로 변환하여 엉뚱한 수가 나온다.

 

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 2진표현을 포함한 바이트 배열을 BigInteger로 받기 위해 매개변수로 2를 넘겼다. 
        BigInteger a = scanner.nextBigInteger(2);
        BigInteger b = scanner.nextBigInteger(2);
        
        // multiply() 메소드는 BigInteger의 곱셈의 메소드
        BigInteger multiply = a.multiply(b);
        // toString() 메소드에 매개변수 2를 넘겨 두 자연수의 곱을 이진수로 변환
        String answer = multiply.toString(2);
        
        System.out.println(answer);


    }
}

 

14623번: 감정이입

첫 번째 줄에 입력으로 주어진 두 이진수 B1, B2의 곱을 이진수로 출력한다. 출력하는 이진수 앞에 불필요한 0이 붙으면 안 됨에 주의해야 한다. 즉 출력하는 이진수의 시작은 항상 1이어야 한다.

www.acmicpc.net

반응형

댓글