124나라의숫자

_021119·2021년 4월 13일
0

알고리즘

목록 보기
7/9

소인수분해 한다고 생각하고 코드를 짬.

n 을 3으로 나눈 나머지를 r에 저장해준다. 단 r == 0  인 경우 r = 4로 바꿔준다. 124나라에서는 0을 사용하지않음.

n을 3으로 나누고, while문을 돌면서 n > 0보다 클때까지만 나눠준다. 단, n이 3의  배수인경우 (3,6,9...) n 은 -1이 된다.

example )

n=10 인 경우 -> 41
r =1;
n =3;
sb.insert(0,1);
r = 0 ->(4)
n = 0;
sb.insert(0.4);

return 41;

n = 9 인 경우,
r = 0 ->(4);
n = 3
(r == 0) n = 2
sb.insert(0,4);
r = 2;
n = 0
sb.insert(0,2);

return 24;

tip!

StringBuilder를 사용해야 효율성 통과.(원래는 String + 하는 방식으로 했었음. answer = r + answer;)

public String solution(int n) {
        String answer = "";
        StringBuilder sb = new StringBuilder();

            while(n > 0){
              int r = n%3;
              n = n/3;

            if(r == 0){r = 4; n = n-1;}

            sb.insert(0, r);
        }
       return sb.toString();

    }
profile
내가 정리하고 싶어서 쓰는 로오그

0개의 댓글