Java programming

[Java programming] ์ง„๋ฒ• ๋ณ€ํ™˜ : N์ง„๋ฒ• ↔ 10 ์ง„๋ฒ• (feat. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 68935 : 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2023. 11. 10.

 

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ์ง„๋ฒ•์„ ๋ณ€ํ™˜ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ๋‹ค.

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 68935 : 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/68935

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

10์ง„๋ฒ•์„ 3์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พผ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋กœ 3์ง„๋ฒ• ์ˆ˜๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”๋ฐ,  ์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ ๋ง๊ณ , ์ž๋ฐ”์—์„œ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.

๋ฐ”๋กœ ๋„๋ฆฌ ์“ฐ์ด๋Š” Interger.toString() ๊ณผ Integer.parseInt() ๋ฉ”์†Œ๋“œ์ด๋‹ค.

 

๐Ÿ’ก์ง„๋ฒ• ๋ณ€ํ™˜ ๋ฐฉ๋ฒ•

10 ์ง„์ˆ˜์ธ ์ˆ˜ n์„  ๋‹ค๋ฅธ ์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

//10์ง„๋ฒ•์ธ ์ˆ˜ n์„ 3์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
Integer.toString(n, 3);

//10์ง„๋ฒ•์ธ ์ˆ˜ n์„ 4์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
Integer.toString(n, 4);

//10์ง„๋ฒ•์ธ ์ˆ˜ n์„ 5์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
Integer.toString(n, 5);

//10์ง„๋ฒ•์ธ ์ˆ˜ n์„ 6์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
Integer.toString(n, 6);

 

 

๋‹ค๋ฅธ ์ง„๋ฒ•์˜ ์ˆ˜ n์„ ๋‹ค์‹œ 10์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ

3์ง„๋ฒ•์˜ ์ˆ˜ n์„ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๊ธฐ
Integer.parseInt(n, 3);

4์ง„๋ฒ•์˜ ์ˆ˜ n์„ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๊ธฐ
Integer.parseInt(n, 4);

5์ง„๋ฒ•์˜ ์ˆ˜ n์„ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๊ธฐ
Integer.parseInt(n, 5);

6์ง„๋ฒ•์˜ ์ˆ˜ n์„ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๊ธฐ
Integer.parseInt(n, 6);

 

๐Ÿšจ์ฃผ์˜

๋งŒ์•ฝ ์ˆซ์ž ๋ณ€ํ™˜ ํ›„ ๋‹ค์‹œ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ํ• ๋•Œ๋‚˜, ๋ณ€ํ™˜ํ•  ๋•Œ NumberFormatExeption ํ„ฐ์ง„๋‹ค๋ฉด, ์ˆซ์ž์˜ ํฌ๊ธฐ๋‚˜ ์ž˜๋ชป๋œ ํ˜•ํƒœ๋กœ ๋„ฃ์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, 10์ง„์ˆ˜์˜ ์ˆซ์ž๋ฅผ 3์ด๋‚˜ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ ์ˆ˜๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ๊ฐ€ int ์ž๋ฃŒํ˜•์„ ๋„˜์–ด๊ฐ€๊ฒŒ ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿด๋• ๋‹น์—ฐํ•˜๊ฒŒ๋„ 

long num = Long.parseLong("๋ณ€ํ™˜ํ•œ ์ˆ˜");

long ์ž๋ฃŒํ˜•์„ ์จ์„œ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.

์•„๋‹ˆ๋ฉด ๋‚˜์ฒ˜๋Ÿผ ์•„์˜ˆ ์ž˜๋ชป๋œ ์ž…๋ ฅ์„ ํ•œ ๊ฒƒ์ผ ์ˆ˜๋„์žˆ๋‹ค. (๐Ÿ˜ฐ)

์ƒˆ๋ฒฝ ์ฝ”๋”ฉ์˜ ๋ฌด์„œ์›€์ ,,,,,,๋ฐฐ์—ด ํ˜•์‹ ๊ธ€์„ ์ˆซ์ž๋กœ ๋ฐ”๊พธ๋ ค๊ณ ํ•˜๋‹ค๋‹ˆ,,,,,

 

 

 

โญ•๋‹ค๋ฅธ ํ’€์ด 1

๋ณ€ํ™” ํ•ด์ค€๋’ค ์ž๋ฆฟ์ˆ˜๋ฅผ ์ง€์ˆ˜๋กœ ์—ฐ์‚ฐํ•ด์ฃผ์–ด ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class LS_68935 {
    public static void main(String[] args) {
        System.out.println(solution(45));
    }
 
    public static int solution(int n) {
        int answer = 0;
        String trit = Integer.toString(n, 3);
        char[] tritArr = trit.toCharArray();
        int left = 0;
        int right = tritArr.length - 1;
        while (left < right) {
            char tmp;
            tmp = tritArr[right];
            tritArr[right] = tritArr[left];
            tritArr[left] = tmp;
            left++;
            right--;
        }
        for (int i = tritArr.length - 1; i >= 0; i--) {
            answer += Integer.parseInt(String.valueOf(tritArr[i])) * Math.pow(3, tritArr.length - 1 - i);
        }
        return answer;
    }
}
cs

 

 

์œ„ ๋กœ์ง๋Œ€๋กœ ํ•˜๋ฉด ์ •๋‹ต์„ ๋ฐ›์„์ˆœ ์žˆ์ง€๋งŒ ๋ถˆํ•„์š”ํ•œ ๋ณ€ํ™˜๋“ค์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค. 

(char → String ,  String → Integer , Integer   int)

 

 

โญ•๋‹ค๋ฅธ ํ’€์ด 2 (ํ›จ์”ฌ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์•„๋‚„ ํ’€์ด)

๋” ๊น”๋”ํ•˜๊ฒŒ ํ•œ๋‹ค๋ฉด, ์ฒ˜์Œ ์ˆ˜๋ฅผ 3์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ๋ฉด์„œ ๋’ค์ง‘์–ด์„œ ์ €์žฅํ•˜๊ณ , ๊ทธ ์ˆ˜๋ฅผ 10์ง„๋ฒ• ์ˆ˜๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class LS_68935_2 {
    public static void main(String[] args) {
        System.out.println(solution(125));
    }
 
    public static int solution(int n) {
        int answer = 0;
        StringBuilder sb = new StringBuilder();
        while (n > 0) {
            sb.append(n % 3);
            n = n / 3;
        }
        return Integer.parseInt(sb.toString(), 3);
    }
}
 
cs

 

 

 

๐Ÿช„๋ฒˆ์™ธ

๋ฒˆ์™ธํŽธ์œผ๋กœ ๋ณ€ํ™˜๋ง๊ณ , 2, 8, 16 ์ง„์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.

 

2, 8 ,16 ์ง„์ˆ˜ ํ‘œํ˜„ํ•˜๊ธฐ

https://programmer-may.tistory.com/142

 

[Java programming] ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ : 2์ง„์ˆ˜ , 8์ง„์ˆ˜, 16์ง„์ˆ˜ ํ‘œํ˜„ํ•˜๊ธฐ

โ–ฆ 2์ง„์ˆ˜ 2์ง„์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ด์•ผํ•  ๋• ์ˆซ์ž ์•ž์— 0B๋ฅผ ์จ์•ผํ•œ๋‹ค.(b๋Š” ์†Œ๋ฌธ์ž๋กœ๋„ ์จ๋„ ๋œ๋‹ค.) ์˜ˆ์‹œ) 1 2 3 4 5 6 7 public class BinaryTest { public static void main(String[] args) { int bNum = 0B1010; System.out.println(bNum); } } Colo

programmer-may.tistory.com

 

๋Œ“๊ธ€