[알고리즘]/백준

백준 11005 자바 - 진법 변환2

broship 2021. 7. 7. 07:52

문제


 

 

 

문제해결


- n과 b의 나머지 연산 결과를 stack에 담고, n을 b로 나누는 방식으로 진수 변환을 한다

- 출력할때 두자리수 결과는 영어 알파벳으로 치환한다

ex)

num = 35 일때

num + 55 = 90

90의 아스키코드표는 'Z'

import java.util.Scanner;
import java.util.Stack;

public class B11005 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextInt();
        int b = sc.nextInt();
        //0~35 범위에 있는 두자리 숫자가 나올 수 있으니 StringBuilder보다는 stack 사용
        Stack<Long> stack = new Stack<>();
        while (n!=0){//진수 구하기
            stack.push(n%b);
            n /= b;
        }
        //두자리수는 영어 알파벳으로 치환해서 출력
        while (stack.size()!=0){
            long num = stack.pop();
            if (num < 10)
                System.out.print(num);
            else
                System.out.print((char)(num+55));
        }
    }
}