알고리즘

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

또롱또 2022. 5. 15. 19:14
728x90

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

function solution(n) {
    var answer = 0;
    // 임시값 보존할 변수
    let temp = 0;
    // .toString(3) - 3진법으로 만들고, 배열로 만들고, 뒤집고, 문자열로 만든다
    temp = n.toString(3).split('').reverse().join('');
    
    // 정수로 바꿔준다(3진법문자열이라고 알려줌)
    answer = parseInt(temp, 3)
    
    return answer;
}

정답은 대부분 비슷해서

3진법을 toString말고 나눈값의 나머지로 계산한걸 가져왔다.

function solution(n) {
    const answer = [];
    while(n !== 0) {
        answer.unshift(n % 3);
        n = Math.floor(n/3);
    }
    return answer.reduce((acc,v,i) => acc + (v * Math.pow(3, i)),0);   
}
728x90