주어진 숫자를 3진법으로 바꾼뒤 거꾸로 바꾸고 그 숫자를 다시 10진법으로 출력하기
1. js 내장함수를 이용하여 푸는 방법
toString(3)으로 3진법을 만든 후 뒤집은 다음 parseInt(answer,3)으로 푼다.
2. 직접 3진법과 10진법을 수학적으로 푸는 방법
3으로 나눈 나머지를 string으로 하나씩 더한 후 각 숫자를 3의 n승으로 곱하여 나타낸다.
내장함수
n= n.toString(3);
let answer = "";
for(let i=0;i<n.length;i++){
answer = n[i]+answer;
}
answer = parseInt(answer,3);
return answer;
직접 구하기
let num = "";
while( n >0){
num += String(n%3);
n = Math.floor(n/3);
}
let answer = 0;
for(let i=0;i<num.length;i++){
answer += parseInt(num[i])*Math.pow(3,num.length-(i+1));
}
return answer;
두 방법 모두 접근하기 쉽지만, 수학적으로 생각 해 보는 것도 재미있을 것 같다.
시간은 내장함수를 사용하는 것이 0.01-0.02ms 정도 빠르다.