본문 바로가기
백준 문제풀이/Java

[백준] 11005번 진법 변환 2

by isfp_yykkng 2024. 3. 26.

[백준] 11005번 진법 변환 2 - 자바

문제

해설

10진수를 B진법으로 표현하기 위해선 10진수의 숫자를 B로 나누고 그 나머지를 역순으로 출력한다. (10진수 숫자 n은 계속 B로 나누면서 0이 아닐 때까지 반복한다. )

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        StringBuilder sb = new StringBuilder();
        int n = Integer.parseInt(st.nextToken());
        int base = Integer.parseInt(st.nextToken());

        while(n > 0) {
            if(n%base >= 10) {
                sb.append((char)(n%base+55));
            }else sb.append((char)(n%base +'0'));
            n /= base;
        }
        System.out.println(sb.reverse());
    }
}

[참고]

1. 문자열 <-> 숫자 변환

위에 코드에서 보았듯이 숫자 65를 맞추던지 + 'A' 를 더하면 된다. 이를 (char) 를 이용해서 형변환 한다.

 

2. 문자열을 거꾸로 출력하기 (https://yangbox.tistory.com/59)

 

Java String reverse (문자열 뒤집기)

Java String reverse (문자열 뒤집기) 자바에서 문자열을 다루며 빈번하게 하는 작업 중 하나가 뒤집기(reverse)이다. 자바에서 문자열을 뒤집을 수 있는 방법 중 몇 가지를 소개한다. (String 클래스에 reve

yangbox.tistory.com