[ Solution ]
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
String s = sc.next();
StringBuilder sb = new StringBuilder(); // string을 더하는 상황에 유용
for(int i = 0; i < s.length(); i++) {
String a = Integer.toBinaryString(s.charAt(i) - '0'); // charAt은 string으로 저장된 문자열 중에서 한 글자만 선택해서 char 타입으로 바꿔준다
if(a.length() == 2 && i != 0)
a = "0" + a;
else if(a.length() == 1 && i !=0)
a = "00" + a;
sb.append(a);
}
System.out.println(sb);
}
}
이 문제는 8진수를 2진수로 바꾸는 방법을 잘 알고 있어야 하고, 자바의 지정된 함수를 잘 사용할 수 있어야 하는 문제처럼 보인다.
8진수를 문자열로 입력받아서, 하나씩 인덱스로 뜯어 십진수 정수로 변경 후, 그 수를 binary로 바꿔주면 되는데 이 작업을 Integer.toBinaryString() 함수를 이용하면 편리하다.
중요한 것은 첫 번째 인덱스가 아닐 경우 2진수를 세 자리로 표현하여 붙여야 하기 때문에 그 점을 빠뜨리지 않고 구현해주어야 한다는 것이다.