boj)1212 - 8진수 2진수
2020. 9. 16. 15:15ㆍPS/boj
import java.util.Scanner;
// # 8진수 2진수
public class boj_1212 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
String[] arr = {"000", "001", "010", "011", "100", "101", "110", "111"};
String s = sc.nextLine();
// 2진수 0이 되는 경우
if (s.length() == 1 && s.charAt(0) == '0') {
sb.append(0);
} else {
for (int i = 0; i < s.length(); i++) {
int n = s.charAt(i) - '0'; // 8진수 자리 뽑기
// 8진수의 첫째 자리 에서 0 처리
if (i == 0 && n < 4) {
switch (n) {
case 1:
sb.append("1");
break;
case 2:
sb.append("10");
break;
case 3:
sb.append("11");
}
} else {
sb.append(arr[n]);
}
}
}
System.out.println(sb.toString());
}
}
- 생각은 했는데 코드로 짜는걸 못했음
- 8진수의 각자리를 따져서 풀이
- 8진수에 0이 들어올경우 따로 처리
- ex) 314 -> 011 / 001 / 100 3자리로 끊어서 봤을때 맨 앞자리 0을 처리해야되니까
if문에서 switch case로 따로 처리 , 2째자리부터는 배열에서 뽑아서 붙이기
'PS > boj' 카테고리의 다른 글
boj)1463 - 1로 만들기 (0) | 2020.09.16 |
---|---|
boj)17103 - 골드바흐 파티션 (0) | 2020.09.16 |
boj)1373 - 2진수 8진수 (0) | 2020.09.16 |
boj)17087 - 숨바꼭질 6 (0) | 2020.09.15 |
boj)9613 - GCD 합 (0) | 2020.09.15 |