티스토리 뷰

 

 

 

 

 

 

 

 

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

 

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

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

programmers.co.kr

 

 

문제 설명

 

프로그래머스 - 3진법 뒤집기 문제 설명

 

 

 

문제 풀이 (Javascript)

 

 

function solution(n) {
    let num = n.toString(3);
    let str = String(num).split('').reverse().join('');
    return parseInt(str, 3)
}

 

 

이 문제는 n진수에서 m진수로 변환하는 방법만 알면 쉽게 풀 수 있는 문제이다.

 

나는 아래의 순서대로 접근했다.

 

1. n.toString(3) - 자연수 n을 3진수로 변환한 값을 담는 변수 num 생성

2. String(num) - num의 각 자릿수를 뒤집기 위해 문자열로 변환

3. split('') - 문자열로 변환한 num을 다시 각 자릿수를 한 요소로 가지는 배열로 만듦

4. reverse() - 반환된 배열의 앞과 뒤를 반전

5. join('') - 앞 뒤의 요소를 반전시킨 배열을 다시 문자열로 이어 붙이기

6. parseInt(str, 3) - 5번에서 이어 붙인 문자열을 정수형과 함께 10진수로 변환

 

 

원래 앞 뒤의 자리를 뒤집는 문제를 풀 때는 항상 for문으로 i-- 시켜서 접근했는데

이번에는 처음으로 reverse() 메소드를 사용해 보았다.

 

ㅍ....편하다...

 

 

n진수에서 m진수로 변환하는 방법

 

📍 10진수를 n진수로 변환하는 방법 : {{10진수}}.toString(n)

📍 n진수를 10진수로 변환하는 방법 : parseInt({{n진수}}, n)

📍 n진수에서 m진수로 변환하는 방법 : parseInt({{n진수}}, n).toString(m)

       n진수에서 10진수로 변환 후 parseInt({{n진수}}, n) 👉🏻 다시 10진수를 m진수로 변환 toString(m)

 

 

 

 

링크
«   2024/11   »
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
Total
Today
Yesterday