[Lv2] 124 나라의 숫자

Creating the dots·2022년 1월 25일
0

Algorithm

목록 보기
56/65

프로그래머스

풀이

10진법   	3진법		124나라
1		1		1	//3으로 나눴을때 나머지가 1
2		2		2	//3으로 나눴을때 나머지가 2
3		10		4	//3으로 나눴을때 나머지가 0
4		11		11	
5		12		12
6		20		14
7		21		21
8		22		22
9		100		24
10 		101		41
11		102		42
12		110		44
  • 10진법을 n진법으로 나타낼때, 10진법 수를 n으로 반복해서 나누어 나머지를 이어붙이면 된다. 이 문제에서는 3을 기준으로 바뀌므로 3으로 반복해서 나눈 나머지를 이어붙이면 된다.
  • 이때, 3으로 나누었을때, 나누어떨어진다면 0이 아니라 4를 이어붙인다는 점에서 다르다.
  • 3진법에서 3으로 나누어떨어졌을때(ex. 3) 자릿수가 바뀌는데 124 나라에서는 그다음에(ex. 4) 자릿수를 바꾸기 위해 (몫-1)을 3으로 다시 나눈다.
function solution(n) {
  const nums = [4,1,2];
  let answer = '';
  while(n>0) {
    answer = nums[n%3] + answer;
    n = n%3===0 ? (n/3)-1 : Math.floor(n/3);
  }
  return answer;
}
profile
어제보다 나은 오늘을 만드는 중

0개의 댓글