코드
function solution(n) {
let origin = 1;
let result = 0;
let resultArr = [];
while (n >= origin) {
origin *= 3;
}
while (n > 0) {
origin /= 3;
resultArr.push(parseInt(n / origin));
n = n % origin;
}
for (let i = 0; i < resultArr.length; i++) {
result += Math.pow(3, i) * resultArr[i];
}
return result;
}
다른 방법
const solution2 = (n) => {
return parseInt([...n.toString(3)].reverse().join(""), 3);
};
toStirng 자체에 n진법으로 변환하는 기능이 있다
마찬가지로 parseInt에도 있다
다른 방법
function solution3(n) {
const answer = [];
while (n !== 0) {
answer.unshift(n % 3);
n = Math.floor(n / 3);
}
return answer.reduce((acc, v, i) => acc + v * Math.pow(3, i), 0);
}
'코딩 테스트 > 프로그래머스 level1' 카테고리의 다른 글
크레인 인형뽑기 게임 (0) | 2022.09.08 |
---|---|
성격 유형 검사하기 (0) | 2022.09.08 |
문자열 다루기 기본 (0) | 2022.09.07 |
내적 (0) | 2022.09.07 |
문자열을 정수로 바꾸기 (0) | 2022.09.07 |