https://www.acmicpc.net/problem/1373
백준 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진수로 변환해준다.
개선점이나 오류가 있다면, 댓글 부탁드립니다.
'PS > 알고리즘 문제풀이' 카테고리의 다른 글
[백준]1302번 베스트셀러(java) (0) | 2022.09.04 |
---|---|
[백준] 1026번 보물(java) (0) | 2022.08.31 |
[백준]1259번 팰린드롬수(java) (0) | 2022.08.22 |
[백준]1932번 정수 삼각형(java) (0) | 2022.08.16 |
[백준]1149번 RGB거리(java) (0) | 2022.08.15 |