[백준] 1212번 8진수 2진수 (java, 구현)
728x90
반응형
10진수로 변환할 때 int범위를 넘어갈 수 있기 때문에 8진수를 바로 2진수로 바꿔주는 문제이다.
8진수 3자리는 2진수 1자리가 된다는 것을 이용한다.
맨 앞자리의 수가 0으로 시작할 경우를 주의해준다
import java.util.Scanner;
public class Main {
static String num;
static String[] binary= {"000","001","010","011","100","101","110","111"}; //8보다 작음
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
num=sc.nextLine();
StringBuilder sb=new StringBuilder();
for (int i = 0; i < num.length(); i++) {
int cur=num.charAt(i)-'0';
if(i==0 && cur<4) {
if(cur<2) { //0,1인 경우 앞의 두자리('00') 잘라주기
sb.append(binary[cur].substring(2));
}else {// 2,3인 경우 앞의 한 자리 ('0') 잘라주기
sb.append(binary[cur].substring(1));
}
}else {
sb.append(binary[cur]);
}
}
System.out.println(sb.toString());
}
}
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 2231번 분해합 (java, 완전탐색) (0) | 2021.04.09 |
---|---|
[백준] 2798번 블랙잭 (java, 완전탐색) (0) | 2021.04.09 |
[백준] 1774번 우주신과의 교감 (java, mst, 크루스칼) (0) | 2021.04.05 |
[백준] 16953번 A -> B (JAVA, DFS) (0) | 2021.03.30 |
[백준] 1755. 숫자 놀이 (java, 정렬) (0) | 2021.03.29 |
TAGS.