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

JudyLia·2022년 1월 14일
0

알고리즘

목록 보기
6/61
post-thumbnail

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

function solution(n) {
    let answer = 0;
    let n3=[];
    let a=0;
    while(true){
        a=n%3;
        n3.push(a);
        n=parseInt(n/3);
        if(n===0){
            break;
        }
    }
    for(let j=0; j<n3.length;j++){
        answer+=(3**j)*n3[n3.length-j-1];
    }
    return answer;
}

우선 삼진법으로 바꿔주기 위해 while문을 사용해 3으로 나눴을 때의 나머지를 n3라는 배열에 push해준다. 이후 나누었을 때 몫이 0이면 break로 while문을 빠져나올 수 있게 했다. 그리고 나서는 배열의 끝 쪽의 숫자부터 3의 j승으로 곱해준뒤 answer에 더해준다.

profile
안녕:)

0개의 댓글

관련 채용 정보