알고리즘

[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(진수) 이렇게 하면 된다