치악산 복숭아
[프로그래머스] 124 나라의 숫자 - Javascript 본문
링크
https://programmers.co.kr/learn/courses/30/lessons/12899
문제 설명
124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.
- 124 나라에는 자연수만 존재합니다.
- 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.
예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.
10진법 | 124 나라 | 10진법 | 124 나라 |
1 | 1 | 6 | 14 |
2 | 2 | 7 | 21 |
3 | 4 | 8 | 22 |
4 | 11 | 9 | 24 |
5 | 12 | 10 | 41 |
자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.
제한사항
- n은 500,000,000이하의 자연수 입니다.
문제 풀이
이 문제의 경우 모든 숫자를 0, 1, 2로 숫자를 표현하는 3진법과 비슷하기 때문에 여기서 힌트를 얻을 수 있다
공통점: 각 자릿수가 3^i (i = 0, 1, 2, ... )을 나타냄
차이점:
➡️ 3진수는 0을 사용하기 때문에 n%3을 이용해서 계산이 가능하다
➡️ 124 나라의 숫자의 경우 0이 없고 대신 4(10진수의 3...)가 있기 때문에
n%3이 0일 경우 변수에 4를 추가하고 1을 빼줘야한다(0이 없어서 안 빼주면 다음 자릿수에 1씩 밀려남)
1) 입력으로 받은 n을 0이 될때까지 반복문을 돌린다
2) n%3이 1 이상(true)라면 answer에 넣어준 뒤 3으로 나누고, n%3이 0(false)이라면 answer에 4를 넣고 1을 빼준다
3) answer를 거꾸로 읽어야돼서 reverse하고 return!
function solution(n) {
var answer = '';
while(n/3) {
if(n%3) {
answer+=n%3;
n = parseInt(n/3);
}
else {
answer+=4;
n = parseInt(n/3)-1;
}
}
return answer.split("").reverse().join("");
}
'PS:0' 카테고리의 다른 글
[프로그래머스] 숫자 문자열과 영단어 - Javascript (0) | 2021.08.11 |
---|---|
[프로그래머스] 부족한 금액 계산하기 - Javascript (0) | 2021.08.09 |
[프로그래머스] 3진법 뒤집기- Javascript (0) | 2021.05.06 |
[프로그래머스] 내적 - Javascript (0) | 2021.05.05 |
[프로그래머스] 음양 더하기 - Javascript (0) | 2021.05.05 |
Comments