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

urzi·2022년 4월 11일
0

PS

목록 보기
22/36

문제

https://programmers.co.kr/learn/courses/30/lessons/12899

풀이

숫자가 1,2,4만 표현이 가능하니까 3진법을 계산할 때 0 자리에 4를 대신 넣어주었다.
근데 이렇게 하면 답이랑 다르게 나온다.
풀이를 좀 살펴보니 일단 0 대신 4를 넣어주고 n을 -1 감소시켜 주어야 한다.
그래야 1이 들어오면 0으로 만들어서 10(3진법인 경우)에서 1을 없애주고,
2가 들어오면 1로 만들어서 20(3진법인 경우)에서 2를 1로 만들어주고 이런 식으로 정답을 도출할 수가 있다.

코드

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

        while (n > 0) {

            int position = n % 3;
            n /= 3;

            if (position == 0) {
                System.out.println(n);
                n --;
                System.out.println(n);
            }

            answer.append(ints[position]);
        }

        return answer.reverse().toString();
    }
}
profile
Back-end Developer

0개의 댓글