-
백준 1373 2진수 8진수 (Java)알고리즘 타파/Baekjoon Online Judge 2020. 7. 5. 21:12반응형
URL
https://www.acmicpc.net/problem/1373
1373번: 2진수 8진수
첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.
www.acmicpc.net
문제
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