[알고리즘] 3진법 뒤집기


알고리즘 문제 풀이 : 3진법 뒤집기

알고리즘 문제 풀이 : 3진법 뒤집기

문제

<문제 설명>
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 
이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
<제한사항>
n은 1 이상 100,000,000 이하인 자연수입니다.
<입출력 예>
nresult
457
125229
<입출력 예 설명>
입출력 예 #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) {
    let answer = 0;
    
    // 10진법을 3진법 변경
    // string을 "" 잘라 배열로 만든 후
    // 배열 반전 시킨 후 배열 합치기
    // 3진법을 10진법으로 표현
    answer = n.toString(3).split("").reverse().join("");
    answer = Number.parseInt(answer, 3);
    
    return answer;
}

공부하기

  • toString() 메서드 toString() 메서드는 특정한 Number 객체를 나타내는 문자열을 반환합니다.
  • split() 메서드 split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.
  • reverse() 메서드 reverse() 메서드는 배열의 순서를 반전합니다. 첫 번째 요소는 마지막 요소가 되며 마지막 요소는 첫 번째 요소가 됩니다.
  • join() 메서드 join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
  • parseInt() 함수 parseInt() 함수는 문자열 인자를 구문분석하여 특정 진수(수의 진법 체계에 기준이 되는 값)의 정수를 반환합니다.

참고






© 2020. GANGPRO. All rights reserved.