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

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

접근 방법

  1. 5*10^7 이하의 자연수가 주어질때, 1,2,4만을 이용해서 숫자를 표현해야한다
  2. 기본적으로 n진법을 구할때와 비슷하게 풀이했다
  3. 다만 n이 3의 배수일때, 4를 추가해주고, n = n/3-1을 해주어야했다.

코드

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

        while (n > 0) {
            int num = n%3;
            if (num == 0) {
                answer.append(4); 
                n = n/3 - 1;
            }
            else {
                answer.append(num);
                n = n/3;
            }

        }

        return answer.reverse().toString();
    }
}