알고리즘 풀이/프로그래머스

[level2] 프로그래머스 - 124 나라의 숫자

데롱디롱 2021. 9. 12. 01:44
728x90

 

 

[ 문제 풀이 ]

- [ 1, 2, 4 ]로만 숫자를 구성해야 한다.
   => 숫자 3가지만 사용하는 것이, 3진수를 사용하는 것과 같다.

 

 

- 숫자 3가지만 사용하는 것이, 3진수를 사용하는 것과 같다.
    => num[ "4", "1", "2"] 에서 해당 index로 접근하여 문자열에 더해준다.

N        3으로 나눈 나머지          3으로 나눈 몫 

1                      1                                        0
2                      2                                        0
3                      0                                        1            => 3으로 나누어 떨어지는 경우, 몫이 1개 더 생기기 때문에 빼준다!!!
                                                      0

4                      1                                        1
5                      2                                        1
6                      0                                        2            => 3으로 나누어 떨어지는 경우, 몫이 1개 더 생기기 때문에 빼준다!!!
                                                                   1 

 

 

 

 

[ 전체 코드 ]

class Solution {
    public String solution(int n) {
        String answer = "";
        String num[] = new String[] { "4", "1", "2" };

        while (n != 0) {
            answer = num[n % 3] + answer;
            if (n % 3 == 0)
                n -= 1;
            n /= 3;
        }

        return answer;
    }
}