자연수가 주어지는데 3진법으로 변환하고 뒤집고 다시 10진법으로 변환하면 된다.
문제는 어렵다고 생각했는데 그냥 순서대로 풀었다.
function solution(n) {
let answer = n.toString(3).split('').reverse().join('')
answer=parseInt(answer,3)
return answer;
}
말그대로 3진법으로 변환하고 배열로 만들고 뒤집고 합치고 10진법으로 변환시켜주었다.
결과는 올클리어 생각보다 쉽게 풀었다.
const solution = (n) => {
return parseInt([...n.toString(3)].reverse().join(""), 3);
}
놀랍다. 전개연산자를 사용했다.
parseInt 함수안에서 전개연산자를 사용하고 뒤집고 다시 합쳐주고 함수를 진행시켰다.
대단한분들이 많다.
function solution(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);
}
내장함수를 사용하지 않고 푸신 분에서 가져왔다. 하나씩 훑어봤다.
3진법으로 변환은 3으로 나눈 값을 소수점 빼고 배열에 밀어 넣은다음에
각 값들에서 인덱스 값으로 3제곱근을 구한뒤에 곱해주고 누적값을 구했다.
내장함수를 사용하지 않은 분들 이미 수학에 익숙하여서 내장함수 없이 구현한것 같다.
대단하신분들이다.