문제출처


import java.util.*;

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

        String[] digit = {"4", "1", "2"};

        while(n > 0){

            int index = n % 3;

            n /= 3;

            if(index == 0){
                n--;
            }

            answer = digit[index] + answer;
        }

        return answer;
    }
}


접근방법

1,2,4 총 3개의 숫자로 표현해야 한다. 즉, 전달된 n % 3 의 값을 저장하고, n /= 3을 하면 된다.

n%3의 값이 0일 경우 4, n%3의 값이 1일 경우 1, n%3의 값이 2일 경우 2로 표현하기 때문에 1,2,4를 문자열 배열에 저장할때 4, 1, 2 순서로 저장했다.

또한 index값과 동일하여 n % 3의 값을 index라는 변수에 저장 하였다.

이후 n에는 n/3한 값을 저장해준다.

n%3이 0일경우 (index == 0) 4로 표현을 하기 때문에 n은 마이너스를 했다.

answer이라는 문자열에 계속해서 4,1,2중 index에 해당하는 숫자를 저장해주었다.