-
boj)1373 - 2진수 8진수PS/boj 2020. 9. 16. 14:25
import java.util.Scanner; // # 2진수 8진수 public class boj_1373 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); String s = sc.nextLine(); int n = s.length(); if (n % 3 == 1) { sb.append(s.charAt(0)); } else if (n % 3 == 2) { sb.append((s.charAt(0)-'0')*2 + (s.charAt(1)-'0')); } for (int i = n%3; i < n; i+=3) { sb.append((s.charAt(i)-'0')*4 + (s.charAt(i+1)-'0')*2 + (s.charAt(i+2)-'0')); } System.out.println(sb.toString()); } }
- 입력받는 2진수의 길이의 최대가 1,000,000으로 너무 길어서 숫자로 받을 생각 x
- String으로 받고 2진수를 3자리씩 끊어서 본다고 생각
- 11 / 001 / 100 이런식으로 끊어서 보면 8진수로 볼 수 있다.
- 이해가 잘안됬는데 적어서 보니까 어느정도 이해가 됨
'PS > boj' 카테고리의 다른 글
boj)17103 - 골드바흐 파티션 (0) 2020.09.16 boj)1212 - 8진수 2진수 (0) 2020.09.16 boj)17087 - 숨바꼭질 6 (0) 2020.09.15 boj)9613 - GCD 합 (0) 2020.09.15 boj)1676 - 팩토리얼 0의 개수 (0) 2020.09.15