문제
문제해결
- 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));
}
}
}
'[알고리즘] > 백준' 카테고리의 다른 글
백준 2745 자바 - Base Conversion (0) | 2021.07.09 |
---|---|
백준 2745 자바 - 진법 변환 (0) | 2021.07.08 |
백준 17103 자바 - 골드바흐 파티션 (0) | 2021.07.06 |
백준 2089 자바 - -2진수 (0) | 2021.07.05 |
백준 1212 자바 - 8진수 2진수 (0) | 2021.07.04 |