프로그래머스 문제풀이 - 124 나라의 숫자 (Javascript)
문제
https://programmers.co.kr/learn/courses/30/lessons/12899
코드
function solution(n) {
let answer = "";
const nums = [4, 1, 2];
while (n > 0) {
answer = `${nums[n % 3]}${answer}`;
n = n % 3 === 0 ? n / 3 - 1 : Math.floor(n / 3);
}
return answer;
}
풀이
3진법을 응용하면 풀 수 있는 문제입니다.
10진법 | 3진법 | 124나라의 숫자 |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 10 | 4 |
4 | 11 | 11 |
5 | 12 | 12 |
6 | 20 | 14 |
7 | 21 | 21 |
... | ... |
10진법 -> 3진법으로 변환할 때와 똑같이 풀되, 규칙을 파악해보면 3진법이 124나라의 숫자표기보다 자리올림이 한 차례 더 빨리 된다는 것을 알 수 있습니다. (3진법은 3에서 자리올림 되지만, 124나라의 표기법은 4 다음에 자리올림 되기 때문)
따라서, 나머지가 0, 1, 2일 때 각각 4, 1, 2를 매핑시키면 되고, 위에서 설명한 이유 때문에 나머지가 0인 경우에는 몫에서 1을 빼주어야 합니다. (124 나라 숫자보다 빨리 올라간 자리올림 수를 빼주는 것)
Author And Source
이 문제에 관하여(프로그래머스 문제풀이 - 124 나라의 숫자 (Javascript)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@alvin/프로그래머스-문제풀이-124-나라의-숫자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)