10진법을 3진법으로 변환했다가 다시 10진법으로 변환하는 그런 알고리즘 문제를 풀다가 다른 사람들의 풀이 중 눈에 띄는 게 있어서 뜯어보았다.
const solution = (n) => {
return parseInt([...n.toString(3)].reverse().join(""), 3);
}
진수를 바꾸는데
parseInt
함수를 사용한 것...! 이게 뭐지???
원래 내가 알고 있던 toString()
함수의 기능은 특정 객체를 문자열로 변환해주는 역할을 한다는 것인데,
10진수를 원하는 n진수로 변환할 때도 사용한다고 한다.
let num = 3;
console.log(num.toString(2)); // 11 (00011)
let num = 32;
console.log(num.toString(16)); //20 (00020)
참고: 반환된 값의 타입은 toString()
을 사용했기 때문에 string
으로 나온다
parseInt()
함수 역시 기존에 나는 그저 단순히 정수값을 반환해주는 것으로만 알고 있어서 종종 Math.floor()
대신 사용하기도 했었는데 정확한 개념으로는 문자열 인자를 파싱하여 특정 진수의 정수를 반환한다라고 함!!!
let num = "11";
console.log(parseInt(num, 2); //3
**참고: 반환된 값은 parseInt()
의 정수 반환 기능 속성 때문에 반환된 값은 타입은 number
가 된다.