-
https://programmers.co.kr/learn/courses/30/lessons/12899
코딩테스트 연습 - 124 나라의 숫자
programmers.co.kr
10진수는 0부터 9까지의 숫자를 이용해서 수를 표현하는 것
4진수는 0부터 3까지의 숫자를 이용해서 수를 표현하는 것
4진수를 이용해서 수를 표현하면
1(1), 2(2), 3(3), 4(10), 5(11), 6(12), 7(13), 8(20), 9(21)... 처럼 10진수를 4로 나누었을 때 '몫+나머지'의 형태로 표현
그렇다면 여기서 0을 사용 불가능하게 해서 1, 2, 3만 사용이 가능하다면
1(1), 2(2), 3(3), 4(11), 5(12), 6(13), 7(21), 8(22), 9(23)...
0을 제외했을 때 새로운 규칙이 나오는데, 이것을 파악해야 본 문제를 풀 수 있음.
function solution(n) { let answer = ''; let remainder = ['4', '1', '2']; let r; let q = n; while(1) { r = q % remainder.length; answer = remainder[r] + answer; if(q % remainder.length === 0) { q = Math.floor(q / remainder.length) - 1; } else { q = Math.floor(q/ remainder.length); } if(q <= 2) { if(q !== 0) answer = q + answer; break; } } return answer; }
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Lv2] 수식 최대화 (0) 2021.07.01 [Lv2] 배달 (0) 2021.06.26 [Lv3] 입국심사 (0) 2021.06.16 [Lv2] 멀쩡한 사각형 (0) 2021.06.14 [Lv2] 오픈채팅방 (0) 2021.06.14 댓글