You will be fine

3. 124 나라의 숫자 (프로그래머스)

by BFine
반응형

가. 문제파악

 1. 유형 : 진법

    -   뭔가 알듯 말듯 하면서 잘 풀리지 않았던 문제였다... 진법만 나오면 머리가 띵해지는 것 같다.

   

나. 코드 

 1. 풀이 : 3진법과 보정  

    -  문제를 보면서 처음엔 3개로 만들 수 있는 모든 경우의 수를 구하면 되지 않을까 생각했다

    -  보다보니 3진법으로 풀릴것 같아서 3진법으로 하는데 문제가 발생했다.

    -  3진법으로 그려보면 숫자보다 먼저 자리수가 달라지는 문제가 발생한다.

3 | 6
   ---
3 | 2  - - - 0
   --- 
    0  - - - 2
    
    
3 | 6
   ---
3 | 1  - - - 0 -> -1 
   --- 
    0  - - - 1
    
    
    

    -  자리수가 달라지기 때문에 자리수 보정을 해준 뒤 0을 "4" 라고 생각하면 된다

public String solution(int n) {

        String[] str = {"4","1","2"};

        String answer = "";

        while (n>0){
            int m = n/3;
            int r = n%3;
            n = m;
            if(r == 0){
                n = n-1; // 자리수 보정
            }
            answer = str[r]+answer;
        }
        return answer;
}
    

 

반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기