[알고리즘]/백준

백준 1212 자바 - 8진수 2진수

broship 2021. 7. 4. 15:01

문제


 

 

문제해결


- 8진수의 경우 경우의 수가 8가지 밖에 안되기 때문에 switch문을 사용해서 각 자리수를 2진수로 변환하였다

- 맨앞 2자리가 0이 올수도 있기 때문에 0일 경우 삭제하는 로직을 추가하였다

import java.util.Scanner;

public class B1212 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        //8진수 -> 2진수 모든 경우의 수 구하기
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            switch (c){
                case '0': sb.append("000"); break;
                case '1': sb.append("001"); break;
                case '2': sb.append("010"); break;
                case '3': sb.append("011"); break;
                case '4': sb.append("100"); break;
                case '5': sb.append("101"); break;
                case '6': sb.append("110"); break;
                case '7': sb.append("111"); break;
            }
        }
        //앞 2자리가 0일경우 삭제
        if (sb.charAt(0)=='0') sb.deleteCharAt(0);
        if (sb.charAt(0)=='0') sb.deleteCharAt(0);
        System.out.println(sb);
    }
}

 

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

백준 17103 자바 - 골드바흐 파티션  (0) 2021.07.06
백준 2089 자바 - -2진수  (0) 2021.07.05
백준 1373 자바 - 2진수 8진수  (0) 2021.07.04
백준 17087 자바 - 숨바꼭질6  (0) 2021.07.03
백준 9613 자바 - GCD 합  (0) 2021.07.02