8진수 2진수
풀이
- 8진수로 들어오는 값 n 에 대해서 각 자릿수를 이진수로 표현하면 된다.
- 만약 8진수로 값이 314 가 들어왔으면 3, 1, 4 이렇게 끊는다.
- 이후 각각의 값을 2진수로 변환시켜주면 된다.
- 3 → 011
- 1 → 001
- 4 → 100
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
static InputStreamReader isr;
static BufferedReader br;
static OutputStreamWriter osw;
static BufferedWriter bw;
static StringTokenizer st;
public static void main(String[] args) throws IOException {
isr = new InputStreamReader(System.in);
br = new BufferedReader(isr);
osw = new OutputStreamWriter(System.out);
bw = new BufferedWriter(osw);
/** 팔진수 입력 **/
String line = br.readLine();
StringBuilder sb = new StringBuilder();
StringBuilder result = new StringBuilder();
for(int i = 0; i < line.length(); i++) {
int value = Integer.parseInt(line.charAt(i) + "");
while(value != 0) {
sb.append(value % 2);
value /= 2;
}
if(sb.length() == 0) {
sb.append("0");
}
while(sb.length() % 3 != 0) {
sb.append("0");
}
sb.reverse();
result.append(sb.toString());
sb.delete(0, sb.length());
}
int startIndex = result.indexOf("1");
if(startIndex == -1) {
bw.write("0\n");
} else {
bw.write(result.substring(startIndex) + "\n");
}
bw.flush();
bw.close();
br.close();
}
}
'Problem Solving & Algorithm > BOJ ' 카테고리의 다른 글
20190407 1373번 : 2진수 8진수 (0) | 2019.04.07 |
---|---|
20190406 1652번 : 누울 자리를 찾아라 (0) | 2019.04.06 |
20190405 14891번 : 톱니바퀴 (0) | 2019.04.05 |
20190401 1197번 : 최소 스패닝 트리 (0) | 2019.04.02 |
20190331 14500번 : 테트로미노 (0) | 2019.03.31 |