-
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