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

728x90
반응형

나머지가 0 일 때 4가 붙고 1일 때 1, 2일때 2가 붙는 것을 규칙성으로 알 수 있다.

 

몫이 문제인데 3의 배수가 예외를 만든다. 3의 몫이 1인데 0인 그룹에 넣고 싶고 6의 몫이 2인데 1인 그룹에 들어가야 

규칙에 맞다.

 

1~3의 수의 경우 몫이 0이고 4~6은 몫이 1, 7~9는 몫이 2으로 만들고 싶다.

그렇게 하려면 각 수에서 1을 빼고 나눠주면 된다.  (n-1)/3 

 

숫자 나머지
1 0 1
2 0 2
3 1 0
4 1 1
5 1 2
6 2 0
function solution(n) {
    var answer = '';
    while(n>0){
        if(n%3==0){
            answer='4'+answer;
            n=n/3-1;
        }else if(n%3==1){
            answer='1'+answer;
            n=Math.floor(n/3);
        }else{
            answer='2'+answer;
            n=Math.floor(n/3);
        }
    }
    
    
    return answer;
}

 

더 나은 풀이 

 

function solution(n) {
    var answer = '';
    const arr=['4','1','2'];
    while(n>0){
        answer=arr[n%3]+answer;
        n=Math.floor((n-1)/3);
    }
    
    
    return answer;
}
728x90
반응형
TAGS.

Comments