티스토리 뷰

programmers. Level1

javascript - 3진법 뒤집기

코딩하는 둥아 2021. 11. 3. 18:10
728x90

문제 설명

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

 

출력 결과

 

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/68935

 

코딩테스트 연습 - 3진법 뒤집기

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

programmers.co.kr

 

 

1. 주어진 n을 3진수로 변환한다.

2. 3진수를 뒤집는다.

3. 다시 10진수로 바꾼다

 

convert3이라는 함수로 10진수를 3진수로 변경한다. 뒤의 과정을 쉽게 진행하려고 배열에 저장했다!

그리고 역순으로 정렬하고, 10진수로 변환하려고 했는데 배열을 사용하니 굳이 역순으로 변경하지 않고 바로 연산하는게 더 편하다고 생각했다. 그래서 바로 연산하여 답을 구했다!

 

function solution(n) {
    var convert = [];
    function convert3(num) {
        convert.unshift(num%3);
        if(num < 3) return;
        convert3(parseInt(num/3));
    }
    
    var answer = 0;
    convert3(n);
    
    for(let i=0 ; i<convert.length ; i++) {
        answer += (3**i) * convert[i];
    }
    return answer;
}

 

728x90

'programmers. Level1' 카테고리의 다른 글

javascript - [1차]비밀지도  (0) 2021.11.04
javascript - 폰켓몬  (0) 2021.11.03
javascript - 모의고사  (0) 2021.11.01
javascript - 소수 만들기  (0) 2021.10.28
javascript - 예산  (0) 2021.10.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함