A-HA💡

[알고리즘] 10진수 ↔︎ n진수 (백준 2745, 11005)

탱 'ㅅ' 2023. 11. 7. 16:08
 

[이산수학 기초] 1. N진법의 계산과 변환방법

이산수학은 컴퓨터 프로그래밍을 배우기 위해 최소한 알아두어야할 내용입니다. 중요하지만 어려우므로 개...

blog.naver.com

 

Math.pow(number, n)

numberⁿ

number의 n제곱(n승)

 

Number.toString(radix)

radix : 진수를 나타내는 2~36 사이의 정수



 

🧐 백준 11005 - 10진수를 N진수로 변환하는 문제

 

toString으로 진법 변환되는 것을 알기 전

const [N, B] = input // 10진수 B진법

// 10진법 ↔︎ B진법 숫자 변환
let quotient = N, remainder, conversion = [] // 몫, 나머지, B진수 변환된 숫자
while (quotient >= B) {
    remainder = quotient % B
    conversion.push(remainder)

    quotient = Math.floor(quotient / B)
}
if(quotient < B) {
    conversion.push(quotient)
}
conversion.reverse()

// 10이상은 B진법에서 알파벳 대문자로 치환 (숫자 불가)
let result = ''
for (let i = 0; i < conversion.length; i++) {
    const num = conversion[i]
    result += num < 10 ? num : String.fromCharCode(num+55) // A:65 ~
}

console.log(result)

 

toString을 통한 진법 변환

const [N, B] = input // 10진수 B진법

const conversion = N.toString(B) // 소문자 알파벳으로 표현된 B진수
const result = conversion.split('').map(v => // 배열로 뵨환
            'a' <= v && v <= 'z' ? v.toUpperCase() : v // 소문자는 대문자로 변경
            ).join('') // 문자열로 변환
console.log(result)

 

 

 

 

ref.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/pow

 

Math.pow() - JavaScript | MDN

js

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/toString

 

Number.prototype.toString() - JavaScript | MDN

toString() 메서드는 특정한 Number 객체를 나타내는 문자열을 반환합니다.

developer.mozilla.org

 

'A-HA💡' 카테고리의 다른 글

웹 MVC 디자인 패턴 (Model-View-Controller)  (0) 2023.12.27
웹1, 웹2, 웹3  (0) 2023.12.15
HTTP 메소드  (0) 2023.11.07
[IDE] VSC 설정이 두가지인 줄 처음 알았다... (user & workspace)  (0) 2023.10.19
to be continued  (1) 2023.10.19