본문 바로가기

Development/TIL

N진법 변환

문제

이번주까지 알고리즘 주차라서 열심히 프로그래머스 문제를 풀고 있었는데

3진법 뒤집기라는 문제가 나왔다.

문제링크

우리가 평소 사용하는 숫자가 10진법 숫자라는 것은 알고 있지만

이것을 다른 n진법으로 변환하는 것에는 지식이 전무한 상황이었다.

 

시도

자바스크립트 n진법 변환에 대해서 구글링을 해보았다.

의외로 아주 간단하게 변환이 가능했다.

10진수 > n진수 변환, n진수 > 10진수 변환

let numbers = 1022

let nNumbers = numbers.toString(n) // n진법으로 변환

let toNumbers = parseInt(nNumbers, n) 
// parseInt의 두번째 인수에 변환할 숫자가 몇 진법을 사용했는지 넣어준다.

 

 

 

해결

function solution(n) {
    let nStr = n.toString(3).split('').reverse();
    //주어진 자연수 n을 3진법으로 바꾼 후 split으로 쪼개어 순서를 뒤집어 주었다
    let answer = 0;
    
    //배열 nStr을 다시 string으로 바꿔주기 위해 반복을 돌려준다
    for (let i = 0; i < nStr.length; i++) {
        answer += nStr[i]
    }
    return Number.parseInt(answer, 3)
    //3진법 숫자로 구성된 문자열 answer를 10진법 숫자로 바꿔서 return해준다
}

 

 

알게된 것

n진법 변환은

.toString(n)

 

10진법 번환은

parseInt(nNum, n)

 

기억해두면 나중에 쓸일이 분명히 있겠지!

'Development > TIL' 카테고리의 다른 글

소수 구하기 (feat.에라토스테네스의 체)  (0) 2023.04.12
문자열과 영단어  (0) 2023.04.11
match 메소드  (0) 2023.04.08
다중 배열  (0) 2023.04.07
올바른 TIL 작성에 대해  (1) 2023.04.07