[Java] 백준 1212번 8진수 2진수

2022. 4. 3. 23:39
728x90

https://www.acmicpc.net/problem/1212

 

1212번: 8진수 2진수

첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.

www.acmicpc.net

이번 문제는 8진수를 2진수로 바꾸는 문제입니다.

자바 라이브러리 중에 Integer.toBinaryString(int i) 가 있습니다.

이 라이브러리는 정수를 2진수로 변환할 때 2진수의 앞자리가 0이면 0을 제거하고 2진수로 바꿔주는 라이브러리입니다.

8진수에서 2진수로 바꾸는 법은 숫자를 쪼개어 자릿수 마다 2진수로 변경해 주면 됩니다.

문제에서 제시한 조건은 앞자리에 0이 올 경우 0을 삭제하고 그 후 부터는 2진수 그대로를 출력해주면 됩니다.

그러면 첫 번째 자릿수를 제외하고 2진수로 변환후 2진수의 길이를 구해 "0"을 추가해주면 됩니다.

 

package BJ;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BJ_8진수2진수 {
	static String str;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		str = br.readLine();
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < str.length(); i++) {
			String a = Integer.toBinaryString(str.charAt(i) - '0');
			if(a.length() == 2 && i != 0) {
				a = "0" + a;
			}else if(a.length() == 1 && i != 0) {
				a = "00" + a;
			}
			
			sb.append(a);
		}
		
		System.out.println(sb.toString());
	}

}

 

Ysik Github : https://github.com/Y1sik/Algorithm/blob/main/BJ/BJ_8%EC%A7%84%EC%88%982%EC%A7%84%EC%88%98.java

반응형

BELATED ARTICLES

more