코딩테스트 연습 > 월간 코드 챌린지 시즌1 > 3진법 뒤집기
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
하지만 코드를 작성하다 보니깐 다음과 같이 변하였다.
1. 3진수로 변환 후 배열에 추가
2. 10진수로 변환
function solution(n) {
var answer = 0;
var i = 0;
var ternary = [];
while(1){
if(parseInt(n/Math.pow(3,i))>0) {
i += 1;
}
else {
i -= 1;
break;
}
} // 3진수 변환시 자릿수 계산
for(var j=i;j>=0;j--){
ternary.push(parseInt(n/Math.pow(3,j)));
n = n % Math.pow(3,j);
} // 3진수로 변환 후 배열에 추가
for(var j in ternary){
answer += ternary[j] * Math.pow(3,j);
} // 10진수로 변환
return answer;
};
const solution = (n) => {
return parseInt([...n.toString(3)].reverse().join(""), 3);
}