반응형
문제
문제 설명
binary 숫자에서 1비트의 개수를 반환하는 문제
일단 숫자를 2진수로 받는(변환하는) 작업이 필요하다.
그냥 받으면 앞에 0이 포함된 부분은 날라가고 마지막의 1만 남게 되어 정상적인 계산이 불가능하다.
자바스크립트의 내장 객체인 toString
의 인자에는 2진수부터 36진수까지 표현 가능하도록 넣을 수 있게 되었다.
그래서 2진수로 변환 후, 1의 개수가 있으면 세어서 반환하고 없으면 0을 반환하도록 처리했다.
toString
을 정말 많이 쓰지만 인자로 N진수를 나타낼 수 있다는 것은 처음 알게 되었다. 앞으로 종종 사용해야겠다.
성공 코드
const hammingWeight = function(n) {
return n.toString(2).match(/1/g) ? n.toString(2).match(/1/g).length : 0;
};
반응형