티스토리 뷰
Link: https://programmers.co.kr/learn/courses/30/lessons/68935
문제 설명
문제 풀이 (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)
'Algorithms' 카테고리의 다른 글
[Algorithms] 프로그래머스 - 같은 숫자는 싫어 (0) | 2021.11.23 |
---|---|
[Algorithms] 프로그래머스 - 최소 직사각형 (0) | 2021.11.23 |
[Algorithms] 프로그래머스 - 하샤드 수 (0) | 2021.11.19 |
[Algorithms] 프로그래머스 - 콜라츠 추측 (0) | 2021.11.11 |
[Algorithms] 프로그래머스 - 제일 작은 수 제거하기 (0) | 2021.11.11 |