프로그래머스 Level 1 - 3진법 뒤집기 - toString(3)

크롱·2023년 10월 10일
0

코딩테스트

목록 보기
29/61

문제

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

나의 풀이


이미지 출처: https://velog.io/@kihyeon8949/Algorithm-3%EC%A7%84%EB%B2%95-%EB%92%A4%EC%A7%91%EA%B8%B0

function solution(n) {
    var answer = [];
    var sum=0;
    while(n){
        answer.push(n%3)
        n= Math.floor(n/3)
    }
    answer = answer.reverse()
    for(let i=0;i<answer.length;i++){
        sum=sum+((3**i)*answer[i])
    }
    return sum
}

다른 풀이 toString(3)

const solution = (n) => {
    return parseInt([...n.toString(3)].reverse().join(""), 3);
}

만약 n이 45라면
n.toString(3)
==> '1200'
toString(3) <= 3진법으로 표현가능

[...n.toString(3)]
을 통해 쪼갤수있다.


ex. [...'1234'] ==> ['1', '2', '3', '4']

parseInt('0012',3)
=> 3x1 + 1x2 = 5

profile
👩‍💻안녕하세요🌞

0개의 댓글