Algorithm๐Ÿฅ‡

2745.์ง„๋ฒ•๋ณ€ํ™˜

hae02y 2023. 10. 23. 23:14
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

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์ง„๋ฒ•์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งžํžŒ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ
1 ์ดˆ 128 MB 36718 18730 16000 50.834%

https://www.acmicpc.net/problem/2745

ํ’€์ด

์ฝ”๋“œ


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

public class ์ง„๋ฒ•๋ณ€ํ™˜ {  
    public static void main(String[] args) throws IOException {  
        BufferedReader br =new BufferedReader(new InputStreamReader(System.in));  

        String[] split = br.readLine().split(" ");  

        String n = split[0];  
        long b = Long.parseLong(split[1]);  

        long result = 0;  

        for(int i=0; i<n.length(); i++){  
            double pow = Math.pow(b, n.length() - 1 - i);  
            long s;  
            if(n.charAt(i) < 65){  
                s = (long) ((n.charAt(i) - 48) * pow);  //1~9์ธ๊ฒฝ์šฐ ASCII(`1`)=48์„ ๋นผ์ค€๋‹ค
            }else {  
                //A~Z์ธ๊ฒฝ์šฐ ASCII('A')=65๋ฅผ ๋นผ์ฃผ๊ณ , 
                //10=A ์ด๋ฏ€๋กœ 10์„ ๋”ํ•ด์ค€๋‹ค. ์ฆ‰ 55๋ฅผ ๋นผ์ฃผ๊ฒŒ ๋œ๋‹ค..!
                s = (long) ((n.charAt(i) - 55) * pow);  
            }  
            result += s;  
        }  
        System.out.println(result);  
        br.close();  
    }  
}
๋ฐ˜์‘ํ˜•