Algorithm/[BOJ] - JAVA
[백준] 1212 : 8진수 2진수 JAVA 풀이
Codew
2022. 10. 4. 21:40
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);
}
}