사실 여기서부터 막막해서... 그냥 구글링으로 문제를 풀었지만, 생각보다 신기한 내장함수가 많은 것 같아서 따로 풀이를 적어보는 중이다.
3진법으로 바꾸는 방법을 알아보던 중 Number.prototype.toString()이 있다는 것을 발견. Object.prototype.toString()와는 다른 메서드이다.
Number.prototype.toString() : 매개변수로 진수를 나타내는 기수의 값을 받는다고 한다. 없을시 디폴트로 10진법으로 표현
???: 아니 그럼 매개변수로 3만 넣어도 자동으로 바뀐단 말이야?
const n = 45;
const ternaryBase = n.toString(3);
console.log(ternaryBase); //1200

이게 되네???
사실 계산해야되나 고민중이었는데, 그럴 필요가 없어졌다.
Number.prototype.toString()의 반환값은 문자열이기 때문에 배열로 만들어준 후 reverse를 해주면 뒤집기 마저도 쉽다.
const reversedNum = [...ternaryBase].reverse();
console.log(reversedNum); // ['0', '0', '2', '1']
// 문자열로 재변환
const reversedStr = reversedNum.join('');
console.log(reversedStr); // '0021'
parseInt()도 비슷한 기능으로 3진법에서 10진법으로 전환이 가능하다. 매개변수로 현재 수의 진법을 적어주면 자동으로 10진법으로 바꿀 수가 있다.
console.log(parseInt(reversedStr, 3)); //7
function solution(n) {
return parseInt([...n.toString(3)].reverse().join(''), 3);
}
한줄로 깔끔~

저도개인과제않했어요 우리 내일하자