문제
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
입력
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) N은 10억보다 작거나 같은 자연수이다.
출력
첫째 줄에 10진법 수 N을 B진법으로 출력한다.
예제 입력 | 예제 출력 |
60466175 36 | ZZZZZ |
풀이
10진법수 K를 N진법 수로 변환하는 방법은 K를 N으로 나눈 나머지를 역순서대로 배열하는 것이다.
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String[] temp = line.split(" ");
int n = Integer.parseInt(temp[0]);
int m = Integer.parseInt(temp[1]);
String[] array = {
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
"U", "V", "W", "X", "Y", "Z"
};
String answer = "";
while(n/m>0){
n=n/m;
answer += array[n%m];
}
answer += array[n%m];
System.out.println(answer);
}
}
'Algorithm > 백준 단계별로 풀어보기' 카테고리의 다른 글
[백준 단계별로 풀어보기-2차원 배열] 세로읽기 (JAVA) (0) | 2024.03.26 |
---|---|
[백준 단계별로 풀어보기-2차원 배열] 행렬 덧셈 (JAVA) (0) | 2024.03.25 |
[백준 단계별로 풀어보기-심화1] 너의 평점은 (JAVA) (1) | 2024.03.22 |
[백준 단계별로 풀어보기-심화] 크로아티아 알파벳 (JAVA) (2) | 2024.03.22 |
[백준 단계별로 풀어보기-심화] 팰린드롬인지 확인하기 (JAVA) (0) | 2024.03.22 |