PR - 3진법 뒤집기

Goody·2021년 3월 8일
0

알고리즘

목록 보기
61/122

문제

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


예시

nresult
457
125229

풀이

  • 주어진 숫자를 toString 메서드로 3진수로 바꾼다.
  • 3진수를 배열 형태로 바꾼 뒤, reverse 메서드로 뒤집는다.
  • 뒤집힌 배열을 reduce 메서드로 각 자릿수의 숫자와 3^배열길이-인덱스 를 곱한 값을 누산한다.

코드

function solution(n) {
    let t = n.toString(3);
    const tArray = Array.from(t);
    const tArrayReverse = tArray.reverse(); 

    
    const sum = tArrayReverse.reduce((acc, cur, idx, arr) => {
        return acc += 3**((arr.length-1)-idx) * cur;
    }, 0)

 
    return sum;
}

0개의 댓글