PS/알고리즘 문제풀이

[백준]1373번 2진수 8진수(java)

javajoha 2022. 8. 28. 20:16

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

 

1373번: 2진수 8진수

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

www.acmicpc.net

백준 1373번 2진수 8진수 문제 링크입니다.

핵심

2진수를 받고서, 그 수를 8진수로 바꾸는 것이다. 문제만 두고 본다면 쉬운 문제이다. 단 10000000의 길이까지 범위가 커질 수 있다. 즉 일반적으로 int 형을 받을 수 없다.

정답 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;

public class Main {

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

        BigInteger N = new BigInteger(S, 2);

        String result = N.toString(8);

        System.out.println(result);
    }

}

해설

풀이는 간단하다.

String 형식으로 수를 입력받는다. 

이후 타입을 int 말고 BigInteger타입으로 받는다. 

BigInteger객체를 생성할때, 뒤에 2를 쓰면 2진수로 받게 된다.

이후 result에 toString(8)을 사용하여, 8진수로 변환해준다.

 

 

개선점이나 오류가 있다면, 댓글 부탁드립니다.