알고리즘/[ Baekjoon ]

[ BOJ ][JAVA][1212] 8진수 2진수

kim.svadoz 2021. 4. 17. 22:25
반응형

www.acmicpc.net/problem/1212

 

1212번: 8진수 2진수

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

www.acmicpc.net

시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 23039 6979 5723 33.267%

문제

8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다.

예제 입력 1

314

예제 출력 1

11001100

코드

import java.io.*;

public class p1212 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        String[] binaryOctalArary = {"000", "001", "010", "011", "100", "101", "110", "111"};

        String s = br.readLine();
        int len = s.length();
        if (s.equals("0") && len == 1) {
            sb.append(0);
        } else {
            for (int i = 0; i < len; i++) {
                int n = Character.getNumericValue(s.charAt(i));

                if (i == 0 && n < 4) {
                    switch (n) {
                    case 1:
                        sb.append("1");
                        break;
                    case 2:
                        sb.append("10");
                        break;
                    case 3:
                        sb.append("11");
                        break;
                    }
                } else {
                    sb.append(binaryOctalArary[n]);
                }
            }
        }

        System.out.println(sb.toString());
    }

}
반응형

'알고리즘 > [ Baekjoon ]' 카테고리의 다른 글

[ BOJ ][JAVA][1991] 트리 순회  (0) 2021.04.17
[ BOJ ][JAVA][1238] 파티  (0) 2021.04.17
[ BOJ ][JAVA][1182] 부분수열의 합  (0) 2021.04.17
[ BOJ ][JAVA][1181] 단어정렬  (0) 2021.04.17
[ BOJ ][JAVA][1174] 줄어드는 숫자  (0) 2021.04.17