코딩 테스트/[JAVA] 백준
[JAVA] 백준 14623번 감정이입
M개발자
2022. 3. 10. 23:09
반응형
감정이입
예제 입출력
입력 | 출력 |
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
반응형