[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;
}