HyeGyeong
HyeGyeong 프로그래머를 꿈꾸며 JavaScript 공부 중

[Algorithm] 124 나라의 숫자

[Algorithm] 124 나라의 숫자

[프로그래머스] 124 나라의 숫자

1,2,4만 사용하는 나라가 있다.
10진법 1 -> 1
10진법 2 -> 2
10진법 3 -> 4
10진법 4 -> 11
10진법 5 -> 12
10진법 6 -> 14
10진법 7 -> 21
10진법 8 -> 22
10진법 9 -> 24
10진법 10 -> 41

3으로 나누었을 때 나머지가 0 -> ‘4’, 1 -> ‘1’, 2 -> ‘2’ 라는 규칙성을 발견했다.

문제는 앞자리.
3으로 나눈 몫이 1이상이면 1,2,4를 조합하여 2자리 이상의 숫자로 만들어야 했다. 이 부분이 막혀서 검색을 이용… 인자로 주어진 n을 0이 될 때까지 3으로 나누고 나머지를 인덱스로 사용하여 nums 배열의 숫자를 answer에 더해주는 방식을 썼다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function solution(n) {
  var answer = '';
  let nums = ['4', '1', '2'];
  let rmd = 0;
  while (n > 0) {
    rmd = n % 3;
    n = Math.floor(n / 3);

    if (rmd === 0) {
      n -= 1;
    }
    answer = nums[rmd] + answer;
  }

  return answer;
}