algorithm

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 3์ง„๋ฒ• ๋’ค์ง‘๊ธฐ(JAVA)

์ˆ˜ํ˜€์ด0812 2024. 5. 1. 23:12
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ๐Ÿ˜ต‍๐Ÿ’ซ

https://school.programmers.co.kr/learn/courses/30/lessons/68935?language=java

 

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

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

programmers.co.kr

 

๋ฌธ์ œ ์„ค๋ช…

์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. n์„ 3์ง„๋ฒ• ์ƒ์—์„œ ์•ž๋’ค๋กœ ๋’ค์ง‘์€ ํ›„, ์ด๋ฅผ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•œ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก

solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”

 

 

์ œํ•œ์‚ฌํ•ญ

- n์€ 1์ด์ƒ 100,000,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

 

 

์ž…์ถœ๋ ฅ ์˜ˆ

n result
45 7
125 229

 

๋‚ด ํ’€๐Ÿฆท

 

class Solution {
    public int solution(int n) {
        String sam = Integer.toString(n, 3);
        String reverse_sam = new StringBuilder(sam).reverse().toString();
        int decimal = Integer.parseInt(reverse_sam, 3);

        return decimal;
    }
    
}

 

๋‹ค์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•˜๊ธฐ๋กœ ํ•˜๊ณ  ์ฒ˜์Œ์œผ๋กœ ์œ ๋‚˜๊ฐ€ ๊ณจ๋ผ์ค€ ๋ฌธ์ œ๋ผ ๊ทธ๋Ÿฐ์ง€ ์‰ฌ์šด ๋ฌธ์ œ์˜€๋‹ค!!

์ดํ•ด๋ ฅ์ด ์•ˆ ์ข‹์€๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋Š” ์˜ˆ์‹œ๋ฅผ ์„ค๋ช…ํ•ด์ค˜์„œ ์ข€ ๋” ํ’€๊ธฐ ์ข‹์€ ๋“ฏ ํ•˜๋‹ค

10์ง„๋ฒ•์„ 3์ง„๋ฒ• ์œผ๋กœ ๋ฐ”๊พธ๊ณ  3์ง„๋ฒ•์„ ๋’ค์ง‘์–ด์„œ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ๋ฐ”๊พธ์–ด์„œ ๋„์ถœ!!

๋’ค์ง‘๋Š” ๋ฉ”์„œ๋“œ์ธ reverse()๋Š” ํŒŒ์ด์ฌ๊ณผ ๋™์ผํ•˜๊ฒŒ ์žˆ๋‹ค

๊ทธ๋ฆฌ๊ณ  Intger,toString()์œผ๋กœ ๋ฐ”๋กœ ์ง„๋ฒ• ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค!!!

 

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

class Solution {
    public int solution(int n) {
        String a = "";

        while(n > 0){
            a = (n % 3) + a;
            n /= 3;
        }
        a = new StringBuilder(a).reverse().toString();


        return Integer.parseInt(a,3);
    }
}

 

๊น”๋”ํ•˜๋‹ค!!

๋ณ€์ˆ˜๋ช…์„ ํ•œ ๋‹จ์–ด๋กœ ํ•˜๋Š”๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ผ๋“ฏ!!

 

์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๊ฐœ๋…๋“ค โœ๏ธ

  • Integer.parseInt(String s) : ๋ฌธ์ž์—ด(s)์„ ์ธ์ž๊ฐ’์œผ๋กœ ๋ฐ›์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์„ 10์ง„์ˆ˜์˜ Integer ํ˜•์œผ๋กœ ๋ณ€ํ™˜
    ex) Integer.parseInt("1004")    // 1004
  • Integer.parseInt(String s, int radix) : ์ˆซ์žํ˜•์˜ ๋ฌธ์ž์—ด์„ ์ฒซ๋ฒˆ์งธ ์ธ์ž๊ฐ’์œผ๋กœ ๋ฐ›๊ณ  ๋ณ€ํ™˜ํ•  ์ง„์ˆ˜๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ์ง„์ˆ˜์— ๋งž์ถฐ์„œ Integer ํ˜•์œผ๋กœ ๋ณ€ํ™˜
    ex) Integer.psrseInt("45", 3)    // 1200
  • Integer.toString() : ์ˆซ์ž๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ˜• ๋ณ€ํ™˜ ๋ฐฉ๋ฒ•!!!
    ex) int num = 123;
          String str1 = Integer.toString(num);  .// ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๊ณ  ๋ฌธ์ž 123์ž„
728x90
๋ฐ˜์‘ํ˜•