문제
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
입출력 예 설명
n = 45 / result = 7
1. n (10진법) = 45
2. n (3진법) = 1200
3. 앞뒤 반전 (3진법) = 0021
4. 10진법으로 표현 = 7
풀이
function solution(n) {
let answer = n.toString(3);
answer = answer.split("").reverse().join("");
answer = parseInt(answer, 3); //어.. 이부분이 왜 10진법으로 된..?
return answer;
}
[손코딩]
1. n을 3진법으로 변환 : 숫자.toString(3)
2. 그걸 앞뒤로 뒤집기 : 배열의 문자열.reverse
3. 그걸 다시 10진법 : 숫자.toString()
[다른사람 풀이]
return parseInt(n.toString(3).split('').reverse().join(''), 3);
-> 좀더 풀어서 쓰면
n = n.toString(3).split('').reverse().join('')
return parseInt(n, 3)