프로그래머스 문제풀이 - 124 나라의 숫자 (Javascript)

문제

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

코드

function solution(n) {
    let answer = "";
    const nums = [4, 1, 2];

    while (n > 0) {
        answer = `${nums[n % 3]}${answer}`;
        n = n % 3 === 0 ? n / 3 - 1 : Math.floor(n / 3);
    }

    return answer;
}

풀이

3진법을 응용하면 풀 수 있는 문제입니다.

10진법3진법124나라의 숫자
111
222
3104
41111
51212
62014
72121
......

10진법 -> 3진법으로 변환할 때와 똑같이 풀되, 규칙을 파악해보면 3진법이 124나라의 숫자표기보다 자리올림이 한 차례 더 빨리 된다는 것을 알 수 있습니다. (3진법은 3에서 자리올림 되지만, 124나라의 표기법은 4 다음에 자리올림 되기 때문)

따라서, 나머지가 0, 1, 2일 때 각각 4, 1, 2를 매핑시키면 되고, 위에서 설명한 이유 때문에 나머지가 0인 경우에는 몫에서 1을 빼주어야 합니다. (124 나라 숫자보다 빨리 올라간 자리올림 수를 빼주는 것)

좋은 웹페이지 즐겨찾기