Integer.toBinaryString()메서드는 Integer를 2진수로 바꿔주는데,
3일 경우는 011이 아니라 11로 바꿔준다.
이 문제에서는 8진수를 2진수로 바꿔야 하므로
변환된 값이 세 자리가 아닌 경우에는 앞에 0을 붙여줘야 한다.
그리고 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다는 조건도 주의해야 한다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringBuffer sb = new StringBuffer();
for(int i=0;i<str.length();i++) {
// 입력받은 str의 한 글자를 이진수로 변환함
String tmp = Integer.toBinaryString(str.charAt(i)-'0');
// 변환한 것이 두 자리이고 0으로 시작하지 않는다면 스트링빌더에 0을 추가
if(tmp.length()==2&&i!=0) sb.append('0');
// 변환한 것이 한 자리이고 0으로 시작하지 않는다면 스트링빌더에 00을 추가
else if(tmp.length()==1&&i!=0) sb.append("00");
// 2진수로 변환한 값을 스트링빌더에 추가
sb.append(tmp);
}
System.out.println(sb);
}
}
'[BOJ] - JAVA' 카테고리의 다른 글
[백준] 1676 : 팩토리얼 0의 개수 JAVA 풀이 (0) | 2022.10.09 |
---|---|
[백준] 11576 : Base Conversion JAVA 풀이 (0) | 2022.10.05 |
[백준] 1373 : 2진수 8진수 JAVA 풀이 (0) | 2022.10.04 |
[백준] 2745 : 진법 변환 JAVA 풀이 (0) | 2022.10.04 |
[백준] 11005 : 진법 변환 2 JAVA 풀이 (1) | 2022.09.30 |