Skip to content

Commit a46a3b1

Browse files
committed
number-of-1-bits solution
1 parent edb6386 commit a46a3b1

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

number-of-1-bits/jdy8739.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
var hammingWeight = function (n) {
6+
const binary = [1];
7+
8+
while (binary[0] < n) {
9+
const latest = binary[0] * 2;
10+
11+
binary.unshift(latest);
12+
}
13+
14+
let count = 0;
15+
16+
for (let i = 0; i < binary.length; i++) {
17+
if (binary[i] <= n) {
18+
count++;
19+
n = n - binary[i];
20+
}
21+
22+
if (n === 0) {
23+
break;
24+
}
25+
}
26+
27+
return count;
28+
};
29+
30+
// 시간복잡도 O(logn) -> 이진탐색처럼 2씩 곱해가며 n을 넘어가는 가장 큰 수를 찾으므로

0 commit comments

Comments
 (0)