본문 바로가기
자바 알고리즘/백준

백준 11005 진법 변환 2

by hoshi03 2024. 1. 31.

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

 

11005번: 진법 변환 2

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를

www.acmicpc.net

문제

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.

10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.

A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35

입력

첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.

출력

첫째 줄에 10진법 수 N을 B진법으로 출력한다.

예제 입력 1 복사

60466175 36

예제 출력 1 복사

ZZZZZ

 

 

N진법 구현하는 문제

 

케이스가 10억까지 돌아서 채점은 매우 오래 걸렸지만 구현 자체는 멱수 구하는 방법이랑 똑같았다

 

public class Main {

    public static String solution(int a, int b)  {
        String res = "";
        StringBuilder sb = new StringBuilder(res);

        while (a > 0){
            int tmp = a % b;
            a /= b;

            if (tmp < 10) sb.append(tmp);
            else sb.append((char)('A' + tmp - 10));
        }


        return sb.reverse().toString();

    }

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int a = Integer.parseInt(br.readLine());
        int b = Integer.parseInt(br.readLine());
        System.out.println(solution(a,b));
    }
}

'자바 알고리즘 > 백준' 카테고리의 다른 글

7785 회사에 있는 사람  (0) 2024.03.08
1181 단어정렬  (0) 2024.03.07
백준 2817  (1) 2024.02.16
백준 10989  (1) 2024.01.29
백준 1543  (0) 2024.01.24