1. ๋ฌธ์ ์ค๋ช
8์ง์ -> 2์ง์
2. ์ ๊ทผ ๋ฐฉ์
8์ง์ → 2์ง์๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
โ 8์ง์ ๊ฐ ์๋ฆฌ๋ฅผ ๋ผ์ด๋ธ๋ค.
โ ๊ฐ ์๋ฆฟ์๋ฅผ 2์ง์๋ก ๋ฐ๊พผ๋ค. (ํ์๋ฆฌ๋ 0~8 ์ฌ์ด์ ์์์ผ๋ก 2์ง์๋ก ๋ฐ๊ฟ ์, 2์ง์๋ ๋ฌด์กฐ๊ฑด 3์๋ฆฌ ์ดํ์)
โ 2์ง์๋ก ๋ฐ๊พผ ์๋ฅผ ์ด์ด ๋ถ์ธ๋ค. (์ด๋, ๋ชจ๋ 2์ง์๋ 3์๋ฆฌ๋ฅผ ์ฐจ์งํด์ผํ๋ค. ์๋๋ฉด ์ ํ ์๊ด ์๋ ์ด์ํ ์๊ฐ ๋๋ค.)
3. ์ฝ๋ ๋ถ์
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 s = br.readLine();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < s.length(); i++){
if(i==0){
sb.append(Integer.toBinaryString(Character.getNumericValue(s.charAt(i))));
}else {
int temp = Character.getNumericValue(s.charAt(i));
if(temp <= 1){
sb.append(0).append(0).append(Integer.toBinaryString(temp));
}else if(temp < 4){
sb.append(0).append(Integer.toBinaryString(temp));
}else {
sb.append(Integer.toBinaryString(temp));
}
}
}
System.out.println(sb);
}
}
Character.getNumericValue(char value)
: char → int (์๋ฆฟ์ ํ๋์ฉ ๋ผ์ด๋ด์ ์๊ฐํ๊ธฐ์ฉ)
Integer.toBinaryString(int value)
: int → 2์ง์๋ก ํํ๋ String ๊ฐ
๋ง์ฝ 2์ง์๋ก ๋ณํํ์ ๋, ์๋ฆฟ์๊ฐ 3๊ฐ๊ฐ ์๋๋ฉด 3๊ฐ๊ฐ ๋๋๋ก ์์ 0์ ์ถ๊ฐ๋ก ๋ฃ์๋ค. ๋ค๋ง ๋งจ ์ ์๋ฆฌ์๋ 0์ ๋ฃ์ผ๋ฉด ์๋๋ฏ๋ก ์ ์ธํ๋ค.
4. ์ฑ์ฅ ํ๊ธฐ
10์ง์๋ฅผ ๋ค์ํ ์ง๋ฒ์ผ๋ก ๋ณํ ์์ผ์ฃผ๋ java์ ํจ์๋ค์ ์์๋ณด์.
// 10 -> 2
Integer.toBinaryString(a);
Integer.toString(a,2); // 2๋ฒ์งธ ์ธ์๋ก ๋ฐ๊พธ๋ ค๋ ์ง๋ฒ์ ์ซ์๋ก ๋ช
์ํด์ฃผ๋ฉด ๋๋ค.
// 10 -> 8
Integer.toOctalString(a);
Integer.toString(a,8);
// 10 -> 16
Integer.toHexString(a);
Integer.toString(a,16);