on
[JAVA] 1212번 - 8진수 2진수
[JAVA] 1212번 - 8진수 2진수
출처 - https://www.acmicpc.net/problem/1212
문제
8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오.
입력
첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.
출력
첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다.
예제 입력 1 314
예제 출력 1 11001100
< 소스 코드 >
import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String n = br.readLine(); for(int i=0; i
이 문제는 1373번 - 2진수 8진수 에서 반대로 된 8진수를 2진수로 변환 하는 문제이다.
처음에는 약간 복잡하게 주어진 수에서 한 자리씩 while문을 통해 2진수로 변환 후,
변환된 2진수의 자릿수에 따라 0을 추가했다.
생각해보니 일일이 맨 앞자리부터 한 자리씩 2진수로 변환할 필요 없이
JAVA에서 제공해주는 java.lang 패키지의 Integer 클래스에는 10진수를 2진수로 변환해주는 함수인
toBinaryString() 가 존재한다.
이 함수를 사용하여 먼저 2진수로 변환하여 2진수의 길이가 2자리일 경우 , 앞에 0 하나만 추가 하며,
2진수의 길이가 1자리일 경우 , 앞에 0을 두개를 추가 한다.
이 문제에서 "수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다."라는 조건이 있기 때문에
10진수 첫 번째 자리가 아닐 경우에만 0을 추가 하도록 한다.
from http://puzzle-moon.tistory.com/70 by ccl(A) rewrite - 2021-12-23 22:01:03