Binary Journey

[Javascript][메모] 프로그래머스 3진법 본문

프로그래머스/메모

[Javascript][메모] 프로그래머스 3진법

binaryJournalist 2021. 6. 8. 20:52
반응형

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

 

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

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

programmers.co.kr

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

문제는 이렇다.

 

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

 

 

 

내 식은 이랬다.

 

function solution(n) {
    let ternary = [];
    let answer = 0;
    while (n >= 1) {
        if (n > 1) {
            ternary.push(n % 3);
        } else {
            ternary.push(n);
        }
        n = parseInt(n / 3);
    }
    for (let i = 0; i < ternary.length; i++) {
        answer += ternary[i] * Math.pow(3, ternary.length - 1 - i);
    }
    return answer;
}

 

 

 

근데 다른 사람의 풀이를 보니 한 줄로 끝나더라.

 

 

 

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

 

 

 

toString으로 3진법 수 만들어준 뒤 한글자씩 풀어서 리스트 만들고 뒤집어서 String으로 만든 뒤 다시 10진법으로..

도른자덜,,,,,,

 

 

 

 

 

 

반응형