Coding Test/백준 - JAVA

백준 2745 진법 변환 (JAVA)

6uiw 2024. 12. 22. 21:26

📌문제

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

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

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

입력

첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)

B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다.

출력

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

 

예제 입력)

ZZZZZ 36

 

예제 출력)

60466175

 

 

📌답

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] n = br.readLine().split(" "); 
        String n1 = n[0];
        int num = 0;
        int d = Integer.parseInt(n[1]);
        int d1 = 1;
        for(int i =n1.length()-1; i>=0; i--) { 
            char n2 = n1.charAt(i);
            if((int)n2>=65) num += ((int)n2 - 55)*d1;
            else  num += (int)(n2 -48) *d1; 
            d1 *= d; 
        }
        System.out.println(num);
    }

}

 

 

 

 

 

 

 

끝까지 읽어주셔서 감사합니다 :)

Have a good day🐱

 


📢

1. 개발자 준비생이 공부한 내용을 정리한 글입니다. 내용에 오류가 있을 수 있습니다.
2. 위와 같은 이유로 내용에 대한 지적과 조언은 감사하게 받습니다.
3. 이 글의 내용은 계속 공부함으로써 언제든지 추가/수정 될 수 있습니다.