티스토리 뷰

PS/boj

boj)1373 - 2진수 8진수

kingsubin 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