본문 바로가기
컴퓨터 공학/백준

[백준] JAVA 자바 : 8진수 2진수 (1212번)

by kim-dev 2024. 1. 22.
반응형

8진수가 주어졌을 때 2진수로 바꾸는 문제이다.
8진수를 2진수로 바꾸는 방법만 안다면 쉽게 해결할 수 있을 것이다!
8진수를 한 문자씩 끊어서 2진수로 변환한 다음 다 이어붙이면 된다!

사실 직전 문제인 2진수 8진수는 못 풀겠어서… 일단 이거부터 풀었다…ㅜㅜ

import java.io.*;

public class OctaltoBinary_1212 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        String N = br.readLine();
        for (int i=0; i<N.length(); i++) {
            int c = N.charAt(i) - '0';
            
            if (c >= 4) { // 숫자가 4보다 클 경우
                sb.append(1); // 1XX
                c -= 4;
            } else { // 그게 아니라면
                sb.append(0); // 0XX
            }
            if (c >= 2) { // 다음 숫자가 2보다 클 경우
                sb.append(1); // X1X
                c -= 2;
            } else { // 그게 아니라면
                sb.append(0); // X0X
            }
            if (c >= 1) { // 숫자가 1보다 클 경우
                sb.append(1); // XX1
            } else { // 그게 아니라면
                sb.append(0); // XX0
            }
        }
        
        // 0으로 시작하는지 판단해서 0을 제거
        if (sb.charAt(0) == '0') {
            if (sb.charAt(1) == '0')
                System.out.print(sb.substring(2, sb.length()));
            else
                System.out.print(sb.substring(1, sb.length()));
        } else {
            System.out.print(sb);
        }
        
        br.close();
    }
}
 

로그인

 

www.acmicpc.net

 

 

작성일자: 2023-09-16