[코딩테스트 연습] 124 나라의 숫자 (Level-2)

Posted by 김성철

코딩테스트 - 124 나라의 숫자

문제 설명
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.

124 나라에는 자연수만 존재합니다.
124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.

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이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.

제한사항
n은 50,000,000이하의 자연수 입니다.
입출력 예
n result
1 1
2 2
3 4
4 11
※ 공지 - 2022년 9월 5일 제한사항이 수정되었습니다.

======================================================================================================

import java.util.*;

class Solution {
public String solution(int n) {
String answer = “”;
ArrayList list = new ArrayList(); while(true){

        if(n>3){  
            int temp=n%3;  
            n=n/3;  
			//여기나라는 0이없음 9를 3으로 나누면 3으로 나누면 몫이 3이여서  
			//40 으로 표시해야되지만 여기는 24로 표시함, 몫을 하나줄이고 바로 뒤에 숫자를 4로만듬  
			//6도 보면 똑같음 그래서 나머지가 0일경우 3으로 변환해주고 몫에서 하나를깜  
            if(temp==0){  
                n=n-1;  
                temp=3;  
            }  
            list.add(temp);  
        }else{  
            list.add(n);  
            break;  
        }  
  
    }  
    //System.out.println(list);  
    for(int i=list.size()-1;i>=0;i--){  
        if(list.get(i)==3){  
            answer+=4;  
        }else{  
            answer+=list.get(i);  
        }  
  
    }  
    return answer;  
}  
  
public String notation(int a){  
  
    return "";  
}   }