알고리즘
[javascript 알고리즘] 3진법 뒤집기
쫌수
2025. 1. 13. 16:25
문제
자연수 n이 주어질 때, n을 3진법으로 변환하고 이를 뒤집은 후, 다시 10진법으로 변환한 값을 return 하도록 함수를 작성해주세요.
제한사항
- n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예
n = 45
result = 7
설명:
45를 3진법으로 변환하면 "1200"
이를 뒤집으면 "0021"
이를 10진법으로 변환하면 7
풀이
function solution(n) {
const 삼진법 = n.toString(3);
const 거꾸로 = [...삼진법].reverse().join("");
return parseInt(거꾸로, 3);
}
다른 사람 풀이
// 한 줄로 풀기
const solution = n => parseInt(n.toString(3).split("").reverse().join(""), 3);
// 스프레드 연산자 사용
const solution = n => parseInt([...n.toString(3)].reverse().join(""), 3);
배운점
parseInt(문자열, 진수)
로 하면 10진법으로 변환할 수 있다.- 거꾸로 10진법 -> 3진법으로 변환하려면
숫자.toString(진수)
이렇게 하면 된다