알고리즘/프로그래머스
[프로그래머스 / Javascript] 124 나라의 숫자
HoSeongYu
2022. 8. 8. 21:02
1. 서론
프로그래머스 level2 문제 124 나라의 숫자
입니다. Javascript
를 이용하여 해결하였습니다.
2. 문제
2.1 문제설명
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
124 나라에는 자연수만 존재합니다.
124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.
자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을
return 하도록 solution 함수를 완성해 주세요.
2.2 제한사항
- n은 500,000,000이하의 자연수 입니다.
3. 입출력 예
4. 풀이
4.1 해설
- 규칙 : 1,2,4의 숫자만 사용
- n%3일때 1,2,4 중 하나를 추가 후 n/3하고 계속 진행
4.2 소스코드
function solution(n) {
var answer = '';
// 규칙 1,2,4 로 모든 수를 표현
const rule = [1,2,4];
while(n>0){
answer = rule[(n-1)%3] + answer
n%3 === 0 ? n = (n/3)-1 : n = Math.floor(n/3)
}
return answer;
}
5. 결론
해당 문제는 3진법과 비슷한 방법으로 해결할 수 있는 문제였습니다.
- Javascript 진법 변환(출처: https://medium.com/web-dev-note/javascript-%EC%A7%84%EB%B2%95-%EB%B3%80%ED%99%98-330694083495)
var value = 10; // 10진법 -> 2, 8, 16 진법으로 변환 value.toString(2); // 1010 value.toString(8); // 12 value.toString(16); // a var bin = 1010, oct = 12, hex = 'a'; // 2, 8, 16 진법 -> 10진법으로 변환 Number.parseInt(bin, 2); // 10 Number.parseInt(oct, 8); // 10 Number.parseInt(hex, 16); // 10