코딩 테스트/JAVA - 백준 단계별로 풀어보기

[백준 Java] 일반 수학 1 - 2745번: 진법 변환

kms152000 2025. 2. 15. 18:48

 

 

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());
        String N = st.nextToken();
        int B = Integer.parseInt(st.nextToken());
        int sum = 0;
        int tmp = 1;

        for (int i = N.length() - 1; i >= 0; i--) {
            char c = N.charAt(i);
            if (c >= 'A' && c <= 'Z') {
                sum += (c - 55) * tmp; // A의 아스키코드 = 65
            } else {
                sum += (c - 48) * tmp; // 0의 아스키코드 = 48
            }
            tmp *= B;
        }

        bw.write(String.valueOf(sum));

        br.close();
        bw.flush();
        bw.close();
    }
}