Algorithm/BOJ(Baekjoon Online Judge)

[백준 - 1212번] 8진수 2진수 - Java //Wello Horld//

koucop 2020. 1. 6. 10:11

이번에는 BOJ의 1212번 문제 "8진수 2진수" 를 풀어보도록 하자

 

입력으로 첫째 줄에 8진수가 주어진다ㅏ.

출력으로 주어진 수를 2진수로 변환하여 출력하면 되는 문제이다.

성공한 코드는 아래와 같다.

import java.io.*;
import java.math.BigInteger;
import java.util.*;

public class sample {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String s = br.readLine();
        int len = s.length();
        if(s.equals("0") && len == 1){
            bw.write("0");
        } else {
            for(int i = 0; i < len; i++){
                if(i == 0) bw.write(last(s.charAt(i)));
                else bw.write(trans(s.charAt(i)));
            }
        }

        bw.flush();
        br.close();
        bw.close();
    }
    static String trans(char a) {
        String result = "";
        if (a == '0') result = "000";
        else if (a == '1') result = "001";
        else if (a == '2') result = "010";
        else if (a == '3') result = "011";
        else if (a == '4') result = "100";
        else if (a == '5') result = "101";
        else if (a == '6') result = "110";
        else if (a == '7') result = "111";
        return result;
    }
     
    static String last(char a) {
        String result = "";
        if (a == '1') result = "1";
        else if (a == '2') result = "10";
        else if (a == '3') result = "11";
        else if (a == '4') result = "100";
        else if (a == '5') result = "101";
        else if (a == '6') result = "110";
        else if (a == '7') result = "111";
        return result;
    }
}

 

 

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

 

1212번: 8진수 2진수

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

www.acmicpc.net

 

혹시 코드에 이상한 부분이나 틀린 부분이 있던지, 이해가 안가는 부분이 있다면 댓글로 알려주세요.