문제) 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
function solution(n) {
let answer = 0;
let n3=[];
let a=0;
while(true){
a=n%3;
n3.push(a);
n=parseInt(n/3);
if(n===0){
break;
}
}
for(let j=0; j<n3.length;j++){
answer+=(3**j)*n3[n3.length-j-1];
}
return answer;
}
우선 삼진법으로 바꿔주기 위해 while문을 사용해 3으로 나눴을 때의 나머지를 n3라는 배열에 push해준다. 이후 나누었을 때 몫이 0이면 break로 while문을 빠져나올 수 있게 했다. 그리고 나서는 배열의 끝 쪽의 숫자부터 3의 j승으로 곱해준뒤 answer에 더해준다.