
n진수를 모르는 사람을 위한 짧은 강의.
n진법의 각 자릿수의 n의 제곱꼴로 주어진다.
예를들어 우리가 쓰는 10진법의 394를 예로 들면, 3*10^2 + 9*10^1 + 4*10^0 의 꼴.
8 = 2^3 이므로, 2진법에서 세자리 = 8진법에서 1자리이므로
세자리씩 끊어 8진법으로 변환해주면 된다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine(); // 2진수를 우선 문자열로 받아온다.
if (str.length()%3==1) { // 계산을 위해, 3단위로 끊어줘야 하므로 자릿수를 맞춰주기 위해 0을 추가
str = "00"+str;
} else if (str.length()%3==2) {
str = "0"+str;
}
System.out.println(conversion(str));
}
static StringBuilder conversion(String str) {
int n = str.length()/3; // 8진법으로 변환시 자릿수
StringBuilder sb = new StringBuilder();
for (int i=0; i<n; i++) {
sb.append(4*(str.charAt(i*3)-48) + 2*(str.charAt(i*3+1)-48) + str.charAt(i*3+2)-48);
}
return sb;
}
}'백준 문제풀이' 카테고리의 다른 글
| 2089. -2진수 (자바, Java) (0) | 2022.11.22 |
|---|---|
| 1212. 8진수 2진수 (자바, Java) (0) | 2022.11.22 |
| 17087.숨바꼭질 6 (자바, Java) (0) | 2022.11.22 |
| 9613. GCD 합 (자바, Java) (0) | 2022.11.22 |
| 11656. 접미사 배열 (자바, Java) (0) | 2022.11.20 |