[Java] 백준 1373번 2진수 8진수

2022. 4. 10. 16:17
728x90

https://www.acmicpc.net/problem/1373

 

1373번: 2진수 8진수

첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.

www.acmicpc.net

이번 문제는 2진수를 8진수로 바꾸는 문제입니다.

마지막 자리가 0이 생략되기 때문에 이 부분만 집중해서 풀면 쉽게 풀린다고 생각합니다.

저는 3을 %로 나누어 나머지가 1과 2로 구분지어 계산하였습니다.

 

package BJ;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BJ_2진수8진수 {
	static String str;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		str = br.readLine();

		StringBuilder sb = new StringBuilder();
		if (str.length() % 3 == 1) {
			sb.append(str.charAt(0));
		} else if (str.length() % 3 == 2) {
			sb.append((str.charAt(0) - '0') * 2 + (str.charAt(1) - '0'));
		} 
		for (int i = str.length() % 3; i < str.length(); i += 3) {
			sb.append((str.charAt(i) - '0') * 4 + (str.charAt(i+1) - '0') * 2 + (str.charAt(i+2) - '0'));
		}
		System.out.println(sb.toString());
	}

}

 

Ysik Github : https://github.com/Y1sik/Algorithm/blob/main/BJ/BJ_2%EC%A7%84%EC%88%988%EC%A7%84%EC%88%98.java

반응형

'알고리즘' 카테고리의 다른 글

[Java] 백준 7567번 그릇  (0) 2022.04.12
[Java] 백준 1439번 뒤집기  (0) 2022.04.11
[Java] 백준 10820번 문자열 분석  (0) 2022.04.09
[Java] 백준 5430번 AC  (0) 2022.04.08
[Java] 백준11655번 ROT13  (0) 2022.04.07

BELATED ARTICLES

more