PR - 124 나라의 숫자[실패]

Goody·2021년 3월 24일
0

알고리즘

목록 보기
76/122
post-custom-banner

문제

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

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

10진법124 나라10진법124 나라
11614
22721
34822
411924
5121041

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


예시

위 표와 같음


풀이

  • n 만큼 루프를 돌면서 배열의 마지막 원소에 2를 계속 곱해 나가다가, 원소가 4보다 커지면 1로 바꾼다.
  • 맨 뒤의 한 칸 앞의 원소 역시 4보다 커지면 1로 바꾼다.
  • 맨 뒤의 원소와 그 앞의 원소들끼리의 공통점이 있어서 규칙을 찾긴 했는데, 맨 앞에 원소를 새로 추가해야 되는 예외처리가 어렵다..

코드

function solution(n) {

    const nums124 = [1];
    let d = 1;

    for (let i = 1; i < n; i++) {
        const lastIndex = nums124.length - 1;



        if (nums124[lastIndex] < 4) nums124[lastIndex] *= 2;
        else {
            nums124[lastIndex] = 1;

            if(lastIndex !== 0) {
                nums124[lastIndex-d] *= 2;
                if(nums124[lastIndex-d] >= 4) d++;
            }
            else nums124.unshift(1); 
        }

    }
}
post-custom-banner

0개의 댓글