본문 바로가기
Algorithm

프로그래머스 1단계 : 3진법 뒤집기

by 코딩대원 2022. 11. 30.

✔ 프로그래머스 1단계 : 3진법 뒤집기

코팅테스트 연습 > 연습문제 > 3진법 뒤집기


❓ 문제 설명

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

❗ 제한사항

n은 1 이상 100,000,000 이하인 자연수입니다.

🍖 입출력 예

n result
45 7
125 229

🍙 입출력 예 설명

입출력 예 #1

n (10진법) n (3진법) n 앞뒤 반전(3진법) n 10진법으로 표현
45 1200 0021 7

따라서 7을 return 합니다.


⏳ 문제 풀이

function solution(n) {
    var answer = 0;
    let tmp = n.toString(3);
    tmp = tmp.split("").reverse().join("");
    answer = parseInt(tmp,3);
    return answer;
}

1. 입력값을 3진법으로 바꾼다.
2. 한단어 기준으로 잘라서 배열를 만든다.(split) -> 배열을 뒤집어준다(reverse) ->배열을 문자열로 합친다(join)
3. 10진법으로 바꾼다. 순서로 풀이하면 됩니다.
3진법은 오늘 처음 들어봤네요.


👀 다른 사람의 풀이

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);   
    }

진법변환 내장함수를 사용하지 않은 방법입니다.

댓글


HTML
CSS

JAVASCRIPT

자세히 보기