프로그래머스 Lv.2 124 나라의 숫자

Steve·2021년 11월 25일
0

https://programmers.co.kr/learn/courses/30/lessons/12899

이건 솔직히 코딩문제라기보다는 수학문제에 가까운 문제라고 생각된다.
좀 많은 시간이 걸렸지만 그래도 엑셀에 숫자를 적어가면서 규칙을 찾아서 해결했다.

핵심은 10진수 숫자 x 를 3으로 나눈 나머지가 2면 2로 끝나고, 1이면 1로 끝나고, 0 이면 4 로 끝난다.
그 앞의 숫자는 3으로 나눈 몫을 다시 재귀적으로 계산하면 되는데, 나머지가 2,1일 경우는 그냥 넣으면 되고, 나머지가 0일경우 몫-1 을 넣어주어야 한다.

function solution(n) {
    var answer = '';
    
    function DFS(n1){
        if (n1 === 0) return '';
        if (n1 === 1) return 1;
        let q = Math.floor(n1/3);
        let r = n1%3;
        if (r) return DFS(q) + String(r);
        else return DFS(q-1) + '4'; 
    }
    answer = String(DFS(n));
    return answer;
}
profile
게임과 프론트엔드에 관심이 많습니다.

0개의 댓글