알고리즘/백준

백준 1372 2진수 8진수

고구마와 감자 2022. 2. 22. 22:34

https://www.acmicpc.net/problem/1373

 

1373번: 2진수 8진수

첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.

www.acmicpc.net

 

public class Boj1372_2진수8진수 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringBuilder sb = new StringBuilder();

        String n = br.readLine();

        // 세 자리씩 끊었을 때 맨 앞에 한 자리만 남는 경우
        if (n.length() % 3 == 1) {
            sb.append(n.charAt(0));
        }
        // 세 자리씩 끊었을 때 두 자리만 남는 경우
        if (n.length() % 3 == 2) {
            sb.append((n.charAt(0) - '0')*2 + (n.charAt(1) - '0'));
        }

        // 나머지 경우
        for (int i = n.length() % 3; i < n.length(); i+=3) {
            sb.append((n.charAt(i) - '0') * 4 + (n.charAt(i + 1) - '0') * 2 + (n.charAt(i + 2) - '0'));
        }
        System.out.println(sb);
    }
}