알고리즘/Programmers

[Programmers] Brute Force : 124 나라의 숫자 #12899

kkoon9 2020. 1. 29. 14:04

문제 링크

124 나라의 숫자

문제 조건

  • 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
  • 124 나라에는 자연수만 존재합니다.
  • 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
10진법 124 나라 10진법 124 나라
1 1 6 14
2 2 7 21
3 4 8 22
4 11 9 24
5 12 10 41

변수 설명

  • n : 10진법 수 (매개변수)

코드 설명

  • (1). n % 3 의 결과에 따라 124 나라에서 사용하는 숫자의 뒷자리를 알 수 있다.
    • n % 3 == 0 이면 4
    • n % 3 == 1 이면 1
    • n % 3 == 2 이면 2
  • (2). n을 3으로 나눠준 뒤 (1)을 다시 진행한다.
  • (3). n이 0이 될때까지 진행한다.
  • 주의사항
    • n % 3 == 0 이면 n-=1 을 해주어야 한다.
      • ex) n이 21일 때
      • n-=1을 해주지 않는다면 값이 이상하게 나온다.

문제 해답


class Solution {
    public String solution(int n) {
        String answer = "";
        while(n != 0) {
            if(n%3 == 0) {
                answer += "4";
                n-=1;
            } else if(n%3 == 1){
                answer += "1";
            } else {
                answer += "2";
            }
            n/=3;
        }
        StringBuffer sb = new StringBuffer();
        sb.append(answer);

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