자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
n | result |
---|---|
45 | 7 |
125 | 229 |
입출력 예 #1
n (10진법) | n (3진법) | 앞뒤 반전(3진법) | 10진법으로 표현 |
---|---|---|---|
45 | 1200 | 0021 | 7 |
입출력 예 #2
n (10진법) | n (3진법) | 앞뒤 반전(3진법) | 10진법으로 표현 |
---|---|---|---|
125 | 11122 | 22111 | 229 |
💡 문제풀이 과정
- toString() 함수을 사용하여 10진법을 3진법으로 변환할 수 있다. 기본 내장 함수로 간단하게 해결이 가능한 것이다.
변환할 숫자.toString(변환할 진법)
let n = 45; // 10진법 // 10진법 -> 2진법 console.log(n.toString(2)) // 101101 // 10진법 -> 3진법 console.log(n.toString(3)) // 1200 // 10진법 -> 8진법 console.log(n.toString(8)) // 55
- 반대로 3진법을 10진법으로 변환하는 것은 parseInt() 함수를 통해 가능하다.
parseInt(변환할 수, 변환할 수의 진법)
으로 parseInt에 두 개의 parameter를 사용.let n = 1200; // 3진법 let m = 21; // 3진법 // 3진법 -> 10진법 console.log(parseInt(n, 3)); // 45 console.log(parseInt(m, 3)); // 7
✅ 답안
function solution(n) {
let answer = n.toString(3).split("").reverse().join("");
return parseInt(answer, 3);
}