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

Yoon Uk·2023년 3월 29일
0
post-thumbnail

문제

[프로그래머스] 124 나라의 숫자
https://school.programmers.co.kr/learn/courses/30/lessons/12899#

풀이

조건

  • 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
    • 124 나라에는 자연수만 존재합니다.
    • 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.

풀이 순서

  • 위의 경우를 보면 결과는 3으로 나눴을 때 나머지의 값에 따라 1, 2, 4 중 하나로 표현됩니다.
  • 그런데 나머지가 0일 땐 다음 수를 1 더 낮춰줘야 합니다.

코드

Java

import java.util.*;

class Solution {
    
    static final String[] DIGIT = {"4", "1", "2"};
    
    public String solution(int n) {
        String answer = "";
        
        List<String> list = new ArrayList<>();
        
        while(n > 0) {
            int idx = n % 3; // 3진수처럼 생각
            
            n /= 3; // 다음 수
            
            // 나머지가 0이면 n을 1 더 줄임
            if(idx == 0) {
                n--;
            }
            
            list.add(DIGIT[idx]);
        }
        
        // 거꾸로 바꾸기
        Collections.reverse(list); 
        
        answer = String.join("", list);
        
        return answer;
    }
    
}

정리

  • 처음엔 DP를 사용해야 하는 줄 알았는데 아니었다.

0개의 댓글