본문 바로가기
카테고리 없음

[ 프로그래머스 ] JS - 3진법 뒤집기

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

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

 

풀이

1. toString()을 이용해 먼저 10진법을 3진법으로 만들어준다!
2. splite()을 이용해 배열로 만든 후 
3. reverse()로 앞뒤 반전을 시킨고 join()을 통해 배열에서 문자열로 변환한다.
4. 마지막으로 앞뒤 반전한 3진법을 pareseInt()를 통해 10진법으로 바꿔준다.

여기서 좀 헷갈렸던 부분은 parseInt()부분이었다.
parseInt()함수는 기본적으로 10진로 해석을 한다. 그렇기에 parseInt(num,3)은 3진수인 num('0021')을 parseInt()를 통해 10진수로 변환한다는 뜻이 된다!

이 점을 모르고 계속해서 parseInt(num,10) 이렇게 했지만 나중에 parseInt는 기본적으로 10진수라는 사실을 알게되어 살짝 허무한 감이 있었지만 이런 부분에서 새로운 것을 얻어가서 좀 더 뜻깊은 실수가 되었던 것 같다!
function solution(n) {
    let num = n.toString(3).split('').reverse().join('') 
    return parseInt(num,3);
}