프로그래머스 - 124월드
2020-02-21
124나라의 숫자
- 이해
- 2진법, 8진법 처럼 숫자가 1/2/4 3개로 순기로 숫자 증감을 표현한다.
- 계획
- Stack에서 공부한 진법 변환 (10진법 -> n진법) 알고리즘으로 푼다.
- 실행
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'); }); });
- 반성
- 어렵게 풀려고 시도하였지만, 얼마전에 공부한 스택을 이용해서 쉽게 구현 할 수 있엇다.
- 인덱스에 따라 값을 뺴려내고 했는데 124 -> 412 바꿔야지 했다. 012라고 생각하면 된다.