ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj)1212 - 8진수 2진수
    PS/boj 2020. 9. 16. 15:15
    import java.util.Scanner;
    
    // # 8진수 2진수
    public class boj_1212 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            StringBuilder sb = new StringBuilder();
            String[] arr = {"000", "001", "010", "011", "100", "101", "110", "111"};
            String s = sc.nextLine();
    
            // 2진수 0이 되는 경우
            if (s.length() == 1 && s.charAt(0) == '0') {
                sb.append(0);
            } else {
                for (int i = 0; i < s.length(); i++) {
                    int n = s.charAt(i) - '0'; // 8진수 자리 뽑기
    
                    // 8진수의 첫째 자리 에서 0 처리
                    if (i == 0 && n < 4) {
                        switch (n) {
                            case 1:
                                sb.append("1");
                                break;
                            case 2:
                                sb.append("10");
                                break;
                            case 3:
                                sb.append("11");
                        }
                    } else {
                        sb.append(arr[n]);
                    }
                }
            }
            System.out.println(sb.toString());
        }
    }
    

    - 생각은 했는데 코드로 짜는걸 못했음

     

    - 8진수의 각자리를 따져서 풀이

    - 8진수에 0이 들어올경우 따로 처리

    - ex) 314 -> 011 / 001 / 100 3자리로 끊어서 봤을때 맨 앞자리 0을 처리해야되니까 

      if문에서 switch case로 따로 처리 , 2째자리부터는 배열에서 뽑아서 붙이기

     

    'PS > boj' 카테고리의 다른 글

    boj)1463 - 1로 만들기  (0) 2020.09.16
    boj)17103 - 골드바흐 파티션  (0) 2020.09.16
    boj)1373 - 2진수 8진수  (0) 2020.09.16
    boj)17087 - 숨바꼭질 6  (0) 2020.09.15
    boj)9613 - GCD 합  (0) 2020.09.15
킹수빈닷컴