본문 바로가기
Algorithm/Baekjoon

Baekjoon 5893 17배 JAVA

by Hunveloper 2022. 9. 20.
728x90

 

5893번: 17배

첫째 줄에 이진수 N이 주어진다. N은 최대 1000자리인 이진수이며, 0이 들어오는 경우는 없다.

www.acmicpc.net

문제

상근이는 이진수 곱셈에 어려움을 겪는 여자친구를 위한 프로그램을 만들려고 한다.

상근이의 여자친구는 항상 이진수에 17을 곱한다. 즉, 이진수 N이 입력으로 들어오면 17을 곱한 다음 이진수로 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 이진수 N이 주어진다. N은 최대 1000자리인 이진수이며, 0이 들어오는 경우는 없다.

출력

입력으로 주어진 N을 17배한 다음, 이진수로 출력한다.

풀이

값을 입력받을때 BigInteger를 이용하여 2진수로 변환하여 입력받아준다.

이진수 32자리까지는 Int, 64자리까지는 Long으로 이용가능 하지만 그 이상은 BigInteger를 사용해야 한다.

그 후 "17"을 이용하여 새로운 BigInteger값을 만들어주고 multiply를 이용하여 연산한다.

마지막으로 출력할 때 n.toString(2)를 이용하여 2진수로 출력해준다.

코드
import java.math.*;
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		BigInteger n = new BigInteger(sc.nextLine(),2).multiply(new BigInteger("17"));
		System.out.println(n.toString(2));
	}
}

 

728x90
728x90

댓글