[Lv1]3진법 뒤집기

HeeJin.log·2021년 7월 10일
0

코딩 테스트

목록 보기
8/10
post-thumbnail

0.문제설명

주어진 숫자를 3진법으로 바꾼뒤 거꾸로 바꾸고 그 숫자를 다시 10진법으로 출력하기

1.문제풀이

1. js 내장함수를 이용하여 푸는 방법
toString(3)으로 3진법을 만든 후 뒤집은 다음 parseInt(answer,3)으로 푼다.
2. 직접 3진법과 10진법을 수학적으로 푸는 방법
3으로 나눈 나머지를 string으로 하나씩 더한 후 각 숫자를 3의 n승으로 곱하여 나타낸다.

2.코드

내장함수

n= n.toString(3);
    let answer = "";
    for(let i=0;i<n.length;i++){
        answer = n[i]+answer;
    }
    answer = parseInt(answer,3);
    return answer;

직접 구하기

let num = "";
   while( n >0){
       num += String(n%3);
       n = Math.floor(n/3);
   }

    let answer = 0;
    for(let i=0;i<num.length;i++){
        answer += parseInt(num[i])*Math.pow(3,num.length-(i+1));
    }
    return answer;

3.후기

두 방법 모두 접근하기 쉽지만, 수학적으로 생각 해 보는 것도 재미있을 것 같다.
시간은 내장함수를 사용하는 것이 0.01-0.02ms 정도 빠르다.

0개의 댓글