-
백준 1373 2진수 8진수 (Java)알고리즘 타파/Baekjoon Online Judge 2020. 7. 5. 21:12반응형
URL
https://www.acmicpc.net/problem/1373
문제
2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오.
입력
첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.
출력
첫째 줄에 주어진 수를 8진수로 변환하여 출력한다.
생각
- 2진수를 뒤에서 3자리씩 끊는다. (부족한 자리는 0으로 채운다.)
- 3자리씩 끊은 숫자에 2진수의 자릿값을 곱한다.
성공 코드
import java.util.Scanner; public class Main { public static int convOctal(String binary) { int number = 4; int result = 0; for (int i=0; i<binary.length(); i++) { result += number * Character.getNumericValue(binary.charAt(i)); number /= 2; } return result; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); StringBuilder sb = new StringBuilder(); String input = scanner.next(); for (int i = 0; i<input.length()%3; i++) { input = '0' + input; } for (int i=0; i<input.length()/3; i++) { sb.append(convOctal(input.substring(3*i, 3*(i+1)))); } System.out.println(sb.toString()); } }
반응형'알고리즘 타파 > Baekjoon Online Judge' 카테고리의 다른 글
백준 2089 -2진수 (Java) (0) 2020.07.08 백준 1212 8진수 2진수 (Java) (0) 2020.07.07 백준 17087 숨바꼭질 6 (Java) (0) 2020.07.03 백준 9613 GCD 합 (Java) (0) 2020.07.02 백준 1676 팩토리얼 0의 개수 (Java) (1) 2020.05.30