[프로그래머스] Lv.1 3진법 뒤집기 JavaScript

Janet·2023년 2월 27일
0

Algorithm

목록 보기
40/314

문제 설명

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.


제한사항

  • n은 1 이상 100,000,000 이하인 자연수입니다.

입출력 예

nresult
457
125229

입출력 예 설명

입출력 예 #1

  • 답을 도출하는 과정은 다음과 같습니다.
n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현
45120000217
  • 따라서 7을 return 해야 합니다.

입출력 예 #2

  • 답을 도출하는 과정은 다음과 같습니다.
n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현
1251112222111229
  • 따라서 229를 return 해야 합니다.

문제풀이

💡 문제풀이 과정

  • 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);
}
profile
😸

0개의 댓글