[PG] 12899. 124 숫자의 나라

2020. 10. 20. 22:46알고리즘/프로그래머스 문제 풀이

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

접근 방법

문제를 자세히 보면 규칙을 찾을 수 있는? 그리고 진법에 대해 안다면 쉽게 풀 수 있는 문제이다.

124나라의 숫자는 오직 [ 1 , 2 , 4 ] 를 통해 숫자를 나타내기 때문에

 1 -> 1  |  2 ->  2 |  3 -> 4  | 4 -> 11 | 5 -> 12 | 6 -> 14 | 7 -> 21

여기서 규칙을 찾아보면

  1. n의 숫자를 나눈 나머지를 파악한다. (n%3)
  2. if( n % 3 == 0 ) → 4의 숫자로 표현이 된다 . // 0 이라면 n 을 감소해줘야 한다!
  3. else → 나머지 숫자로 그대로 표현이 된다.
  4. 이제 n을 3으로 나눠준 몫을 가지고 다시 진행을 한다.

Need Know

  1. n진법?

전체 코드 ( Java )

class Solution {
    public String solution(int n) {
        StringBuilder sb = new StringBuilder();
        while(n > 0){
            int value = n%3;
            if(value == 0) {
                sb.insert(0,"4");
                n --;
            }
            else sb.insert(0,value);

            n /= 3;
        }
        return sb.toString();
    }
}