boj)1373 - 2진수 8진수
2020. 9. 16. 14:25ㆍPS/boj
import java.util.Scanner;
// # 2진수 8진수
public class boj_1373 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
String s = sc.nextLine();
int n = s.length();
if (n % 3 == 1) {
sb.append(s.charAt(0));
} else if (n % 3 == 2) {
sb.append((s.charAt(0)-'0')*2 + (s.charAt(1)-'0'));
}
for (int i = n%3; i < n; i+=3) {
sb.append((s.charAt(i)-'0')*4 + (s.charAt(i+1)-'0')*2 + (s.charAt(i+2)-'0'));
}
System.out.println(sb.toString());
}
}
- 입력받는 2진수의 길이의 최대가 1,000,000으로 너무 길어서 숫자로 받을 생각 x
- String으로 받고 2진수를 3자리씩 끊어서 본다고 생각
- 11 / 001 / 100 이런식으로 끊어서 보면 8진수로 볼 수 있다.
- 이해가 잘안됬는데 적어서 보니까 어느정도 이해가 됨
'PS > boj' 카테고리의 다른 글
boj)17103 - 골드바흐 파티션 (0) | 2020.09.16 |
---|---|
boj)1212 - 8진수 2진수 (0) | 2020.09.16 |
boj)17087 - 숨바꼭질 6 (0) | 2020.09.15 |
boj)9613 - GCD 합 (0) | 2020.09.15 |
boj)1676 - 팩토리얼 0의 개수 (0) | 2020.09.15 |