Jun 개발노트

프로그래머스 - 124월드

February 21, 2020

124나라의 숫자

  1. 이해

    • 2진법, 8진법 처럼 숫자가 1/2/4 3개로 순기로 숫자 증감을 표현한다.
  2. 계획

    • Stack에서 공부한 진법 변환 (10진법 -> n진법) 알고리즘으로 푼다.
  3. 실행

    const divideBy124 = (decNumber) => {
        let remStack = [];
        let rem = 0;
        let baseString = '';
        let digits = '412';
    
    
        while(decNumber > 0){
            rem = parseInt(decNumber % 3);
            remStack.push(rem);
            decNumber = parseInt(decNumber / 3)
            if(rem === 0){
                decNumber -= 1;
            }
        }
        
        while(!remStack.length == 0){
            baseString += digits[remStack.pop()];
        }
        
        return baseString;
    }
    solution = (n) => {
        return divideBy124(n)
    }
    describe('124', () => {
        it('최종', () => {
            expect(solution(4)).toEqual('11');
            expect(divideBy124(10)).toEqual('41');
        });
    });    
  4. 반성

    • 어렵게 풀려고 시도하였지만, 얼마전에 공부한 스택을 이용해서 쉽게 구현 할 수 있엇다.
    • 인덱스에 따라 값을 뺴려내고 했는데 124 -> 412 바꿔야지 했다. 012라고 생각하면 된다.

Written by Junho You 배운것을 기록하자