[Java] 백준 1212번 8진수 2진수
2022. 4. 3. 23:39
728x90
https://www.acmicpc.net/problem/1212
1212번: 8진수 2진수
첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.
www.acmicpc.net
이번 문제는 8진수를 2진수로 바꾸는 문제입니다.
자바 라이브러리 중에 Integer.toBinaryString(int i) 가 있습니다.
이 라이브러리는 정수를 2진수로 변환할 때 2진수의 앞자리가 0이면 0을 제거하고 2진수로 바꿔주는 라이브러리입니다.
8진수에서 2진수로 바꾸는 법은 숫자를 쪼개어 자릿수 마다 2진수로 변경해 주면 됩니다.
문제에서 제시한 조건은 앞자리에 0이 올 경우 0을 삭제하고 그 후 부터는 2진수 그대로를 출력해주면 됩니다.
그러면 첫 번째 자릿수를 제외하고 2진수로 변환후 2진수의 길이를 구해 "0"을 추가해주면 됩니다.
package BJ;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BJ_8진수2진수 {
static String str;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
str = br.readLine();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
String a = Integer.toBinaryString(str.charAt(i) - '0');
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.toString());
}
}
Ysik Github : https://github.com/Y1sik/Algorithm/blob/main/BJ/BJ_8%EC%A7%84%EC%88%982%EC%A7%84%EC%88%98.java
반응형
'알고리즘' 카테고리의 다른 글
[Java] 백준 9093번 단어 뒤집기 (0) | 2022.04.05 |
---|---|
[Java] 백준 10988번 팰린드롬인지 확인하기 (0) | 2022.04.04 |
[Java] 백준 11656번 접미사 배열 (0) | 2022.04.02 |
[Java] 백준 2902번 KMP는 왜 KMP일까? (0) | 2022.04.01 |
[Java] 백준 1032번 명령 프롬프트 (0) | 2022.03.31 |