Study with book/Algorithms

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


[124나라의 숫자] https://programmers.co.kr/learn/courses/30/lessons/12899

124나라의 숫자

 

 

풀고 느낀점

내 머리로 풀 수 없는 문제였습니다. 한 2시간 고민하다가 구글링해서 풀이법을 봤습니다. Level 2 문제였는데 풀지 못하니 살짝 현타가 왔습니다. 3진법을 응용한 문제였습니다. 10진법의 값을 몫이 0일때까지 나누다가 나머지가 0인 경우 4로 대체하고 몫을 1만큼 빼주면 됩니다. 좀 더 내공을 쌓아야할 것 같습니다.

/**
 * 124나라의 숫자
 * https://programmers.co.kr/learn/courses/30/lessons/12899
 */
public class P_12899 {
    
    public static void main(String[] args) {
        P_12899 p_12899 = new P_12899();
        System.out.println(p_12899.solution(1)); // 1
        System.out.println(p_12899.solution(14)); // 112
        System.out.println(p_12899.solution(10)); // 41
        System.out.println(p_12899.solution(9)); // 24
    }


    public String solution(int n) {
        StringBuilder answer = new StringBuilder();
        while (n != 0) {
            int r = n % 3;
            n = n / 3;

            if (r == 0) {
                r = 4;
                n -= 1;
            }
            answer.insert(0, r);
        }

        return answer.toString();
    }
}