처음에는 2진수를 10진수로 변환하고 메서드로 8진수로 변환한 값을 출력하면 되겠다!
했는데 틀렸다..
입력조건을 전혀 고려하지 않았기 때문이었다 하하
입력되는 수의 길이가 최대 999999인데 2^999999를 담을 수 있는 자료형이 없다는 게 문제였다.
그래서 정석대로 3자리씩 잘라서 8진수로 변환하는 방법으로 변경했다.
import java.io.*;
import java.util.*;
public class bj_1373 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer();
String str = br.readLine();
if(str.length()%3==1) {
sb.append(str.charAt(0));
}
else if(str.length()%3==2) {
sb.append((str.charAt(0)-'0')*2+(str.charAt(1)-'0'));
}
for(int i=str.length()%3;i<str.length();i+=3) {
sb.append((str.charAt(i)-'0')*4+(str.charAt(i+1)-'0')*2+(str.charAt(i+2)-'0'));
}
System.out.println(sb);
}
}
'Algorithm > [BOJ] - JAVA' 카테고리의 다른 글
[백준] 11576 : Base Conversion JAVA 풀이 (0) | 2022.10.05 |
---|---|
[백준] 1212 : 8진수 2진수 JAVA 풀이 (0) | 2022.10.04 |
[백준] 2745 : 진법 변환 JAVA 풀이 (0) | 2022.10.04 |
[백준] 11005 : 진법 변환 2 JAVA 풀이 (1) | 2022.09.30 |
[백준] 9613 : GCD 합 JAVA 풀이 (1) | 2022.09.30 |