COCO World

[JavaScript/자바스크립트] 프로그래머스 Lv.1 - 3진법 뒤집기 본문

코딩테스트/프로그래머스

[JavaScript/자바스크립트] 프로그래머스 Lv.1 - 3진법 뒤집기

코코월드주인장 2023. 2. 1. 16:54

🥑 문제 설명

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

🥑 제한 조건

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

🥑 입출력 예

n result
45 7
125 229

🥑 입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

🥑 작성 솔루션

function solution(n) {
    var answer = 0
    let num1 = 0

    num1 = n.toString(3).split('').reverse().join('');
    answer = parseInt(num1, 3);
    return answer;
}

🥑 TIL

  • 변수이름.toString(변환할진법) : 담겨있는 변수의 숫자를 원하는 진법으로 변환할 때 사용하는 메소드
  • parseInt(변수이름, 그 변수가 갖고있는 진법) : 그 변수의 숫자를 10진법으로 변환해주는 메소드
  • .join() : 배열을 합쳐주는 메소드이지만 ()일 때에는 배열 사이에 ,가 추가 됨
  • .join('') : 배열을 합쳐주되 아무 공백없이 배열 요소를 바로 다 합쳐주는 메소드
let num1 = 45;
let num3 = 0;
let num10 = 0;

num2 = num1.toString(3);	// 1200
num3 = parseInt(num2, 3);	// 7