๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๋ฐฑ์ค€

[๋ฐฑ์ค€/Java] 2745 ์ง„๋ฒ• ๋ณ€ํ™˜, 11005 ์ง„๋ฒ• ๋ณ€ํ™˜2 (8๋‹จ๊ณ„ ์ผ๋ฐ˜์ˆ˜ํ•™, ์ง„๋ฒ•๋ณ€ํ™˜ ๊ฐœ๋…๊ณผ ๋ฐฉ๋ฒ•๋“ค)

by ๋ฝ€์งœ๊ผฌ 2025. 2. 6.
728x90
๋ฐ˜์‘ํ˜•

๋ฐฑ์ค€

 

2745, 11005์˜ ์ง„๋ฒ•๋ณ€ํ™” ๋ฌธ์ œ ๋‘ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜๋‹ค.

๋ฌธ์ œ ํ’€๊ธฐ์— ์•ž์„œ ์ง„๋ฒ•์ด ๋ฌด์—‡์ธ์ง€! ์•Œ์•„๋ณด์ž


์ง„๋ฒ•์ด๋ž€?


์ˆ˜๋ฅผ ์…€ ๋•Œ ์ž๋ฆฟ์ˆ˜๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š” ๋‹จ์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋Š” ์…ˆ๋ฒ•

*์ˆซ์ž๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ‘๊ธฐ์ˆ˜๋ฒ•’์˜ ์ผ์ข…์œผ๋กœ, ‘์œ„์น˜๊ธฐ์ˆ˜๋ฒ•’์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋งํ•˜๋ฉด ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๊ฐˆ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ ์ต์ˆ™ํ•œ 2์ง„๋ฒ•, 8์ง„๋ฒ•๋“ฑ์„ ์˜ˆ๋กœ ๋“ค์–ด๋ณด์ž๋ฉด

  1. 2์ง„๋ฒ• : 0๊ณผ 1๋กœ๋งŒ ๊ตฌ์„ฑ
  2. 8์ง„๋ฒ• : 0~7๊นŒ์ง€์˜ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ
  3. 16์ง„๋ฒ• : 0~16๊นŒ์ง€์˜ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ
    ( ๊ทธ๋Ÿฐ๋ฐ 10๋ถ€ํ„ฐ๋Š” ํ‘œํ˜„์ด ์•ˆ๋˜๋ฏ€๋กœ ABCD..๋ฅผ ์‚ฌ์šฉ )

์ฆ‰, ํ•œ ์ž๋ฆฌ์— ์ตœ๋Œ€ ์ˆซ์ž๊ฐ€ ๋ช‡๊ฐœ๊ฐ€ ์˜ค๋Š”์ง€!๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๊ฑฐ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

( 16์ง„๋ฒ•์€ ํ•œ ์ž๋ฆฌ์— 0๋ถ€ํ„ฐ 15๊นŒ์ง€ ์˜ค๋Š”๊ฒƒ์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ๋กธ์ž‡?)


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

1. 10์ง„์ˆ˜ → ๋‹ค๋ฅธ ์ง„๋ฒ•(N)์œผ๋กœ

: N์ง„๋ฒ•์˜ ์ˆ˜ N์œผ๋กœ ๋‚˜๋ˆ—์…ˆ์„ ํ•˜๋ฉด ๋œ๋‹ค!

 

ex1) 45(10)๋ฅผ 2์ง„์ˆ˜๋กœ

๋ณ€ํ™˜

ex2) 255(10)๋ฅผ 16์ง„์ˆ˜๋กœ

๋ณ€ํ™˜


2.  N์ง„๋ฒ• → 10์ง„์ˆ˜๋กœ

๊ฐ ์ž๋ฆฌ ๊ฐ’์— N์„ ๊ณฑํ•ด์„œ 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ๋”ํ•˜๋ฉด ๋œ๋‹ค!

 

ex1) 1011(2)๋ฅผ 10์ง„์ˆ˜๋กœ

10

ex2) 1F(16)๋ฅผ 10์ง„์ˆ˜๋กœ

102

3.  2์ง„์ˆ˜๋ฅผ 8์ง„์ˆ˜, 16์ง„์ˆ˜๋กœ

๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๋ณ€ํ™˜ํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋ฃน


2745 ์ง„๋ฒ•๋ณ€ํ™˜ (์ž๋ฐ”8 64ms)

๋ฌธ์ œ

โœ๏ธ B์ง„๋ฒ• ์ˆ˜ N์„ 10์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

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));
        StringTokenizer st = new StringTokenizer(br.readLine());
        String N = st.nextToken();
        int B = Integer.parseInt(st.nextToken());
        
        // ๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ
        StringBuffer sb = new StringBuffer(N);
        String n = sb.reverse().toString();

        char[] Narray = n.toCharArray();

        int num;
        int sum = 0;
        for (int i = 0; i < Narray.length; i++) {
            // ์•„์Šคํ‚ค
            num = (int)(Math.pow(B,i));
            if (Narray[i] >= 65) {
                int a = (Narray[i] - 55);
                sum += a*num;
            } else if (Narray[i] < 65) {
                int a = Narray[i] - 48;
                sum += a*num;
            }
        }
        System.out.println(sum);
    }
}

 

โœ”๏ธ ์•„์Šคํ‚ค์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๋Š” 48~57์ด๊ณ , ์•ŒํŒŒ๋ฒณ์ด ์‹œ์ž‘ํ•˜๋Š” A์˜ ์•„์Šคํ‚ค์ฝ”๋“œ๋Š” 65์ด๋‹ค.

๊ทธ๋ž˜์„œ ์•„์Šคํ‚ค์ฝ”๋“œ 65์ธ A๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ˆซ์ž, ํฌ๋ฉด ์•ŒํŒŒ๋ฒณ์œผ๋กœ ํ•˜์—ฌ ๋‚˜๋ˆ„์—ˆ๋‹ค.

 

โœ”๏ธ B์˜ ์ œ๊ณฑ์€ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

์ธ๋ฑ์Šค ์‚ฌ์šฉ์„ ์œ„ํ•ด N์˜ ๊ฐ’์„ reverseํ•˜์—ฌ ๋ฐฐ์—ด์˜ ์š”์†Œ๋กœ ๋‚˜๋ˆ  ์‚ฌ์šฉํ–ˆ๋‹ค.

์–ด์งœํ”ผ ์ž๋ฆฟ์ˆ˜๋กœ ๋‚˜๋ˆ  ๊ณ„์‚ฐํ•œ๋‹ค์Œ ๋งˆ์ง€๋ง‰์— ๋”ํ• ๊ฒƒ์ด๋ฏ€๋กœ ์ˆœ์„œ๋Š” ์ƒ๊ด€์—†๋‹ค.

ํ„ฐ๋ฏธ๋„
์ด ์‚ฌ์ง„์„ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ๋ ๋“ฏ. 12345๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๊ฒฝ์šฐ, 5,4,3,2,1๋กœ ๋‹ด๊ธด๋‹ค.


11005 ์ง„๋ฒ• ๋ณ€ํ™˜ 2 (์ž๋ฐ”8 68ms)

โœ๏ธ 10์ง„๋ฒ• ์ˆ˜ N์„ B์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

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));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());

        StringBuilder sb = new StringBuilder();
        int remain;

        while ( N > 0 ){
            remain = N%B;
            if (remain >= 10){ //A~Z (์•„์Šคํ‚ค:+55)
                sb.append((char)(remain+55));
            }else{
                sb.append((char)(remain+48));
            }
            N = N/B;
        }
        System.out.println(sb.reverse().toString());
    }
}

 

โœ”๏ธ ๋‚˜๋จธ์ง€๋ฅผ remain์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ๋‹ด์•„ ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค.

โœ”๏ธ ๋งˆ์ง€๋ง‰์— reverse๋ฅผ ํ•ด์„œ ์ถœ๋ ฅํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค.

-> ์ด๊ฑธ ์•ˆํ–ˆ์„ ๊ฒฝ์šฐ ๊ฑฐ๊พธ๋กœ ์ถœ๋ ฅ์ด ๋˜์–ด ํ‹€๋ฆฐ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•