[Algorithm] 3진법 뒤집기

fromzoo·2020년 11월 13일

algorithm

목록 보기
3/10
post-thumbnail

👩‍🏫 문제설명

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

제한사항

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

입출력 예

nanswer
457
125229

입출력 예 설명

입출력 예 1)

n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현
45120000217

입출력 예 2)

n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현
1251112222111229

✍ 문제해설

  • 해설 1
function solution(n) {
    const ternary= n.toString(3).split('').reverse().join(''); // 3진법으로 바꾸고
    const answer = parseInt(ternary,3); // 10진법으로 바꿔준다.


    return answer
}

console.log(solution(125));
  • 해설 2
function solution(n) {
    let ternaryArr = [];
    let answer = 0

    while( n !== 0 ) {
        ternaryArr.unshift(n % 3);
        n = Math.floor(n / 3);
    }

    ternaryArr.forEach((value,index)=>{
        answer = answer + Math.pow(3,index) * value
    })

    return answer
}
profile
프론트엔드 주니어 개발자 🚀

0개의 댓글