Skip to content

Commit 2e02a6f

Browse files
feat: number of 1bits ํ’€์ด
1 parent e74f321 commit 2e02a6f

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
3+
4+
//ํ’€์ด1. ๋‚˜๋จธ์ง€์™€ ๋ชซ์„ ์ด์šฉํ•œ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ
5+
6+
/**
7+
* @param {number} n
8+
* @return {number}
9+
*/
10+
var hammingWeight = function(n) {
11+
let remain = n;
12+
let count = 0;
13+
while(remain){
14+
if(remain == 2 || remain ==1 ){
15+
count +=1;
16+
break;
17+
}
18+
if(remain %2 == 1){
19+
count +=1
20+
}
21+
remain = Math.floor(remain /2)
22+
}
23+
return count;
24+
};
25+
/*2์ง„๋ฒ•์„ ๊ตฌํ• ๋•Œ, ๋‚˜๋จธ์ง€๊ฐ€ 1์ผ๋•Œ๋งˆ๋‹ค count++ ํ•ด์ฃผ๊ณ ,
26+
๋งˆ์ง€๋ง‰์— 2๋‚˜ 1์ด ๋‚จ์œผ๋ฉด count ++ ํ•˜๊ณ  break ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
27+
28+
์ž…๋ ฅ ๊ฐ’์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(log n)
29+
๊ณต๊ฐ„๋ณต์žก๋„ O(1)
30+
*/
31+
32+
//ํ’€์ด 2. n์˜ ์ด์ง„์ˆ˜์—์„œ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ 1๋น„ํŠธ๋ฅผ ํ•˜๋‚˜์”ฉ ์ œ๊ฑฐํ•˜์—ฌ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ๋ฐฉ๋ฒ•
33+
34+
/**
35+
* @param {number} n
36+
* @return {number}
37+
*/
38+
var hammingWeight = function(n) {
39+
//์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„๋•Œ, 1์˜ ๊ฐœ์ˆ˜?
40+
let count = 0;
41+
while (n !== 0) {
42+
n = n & (n - 1);
43+
count++;
44+
}
45+
return count
46+
};
47+
48+
/*
49+
์‹œ๊ฐ„๋ณต์žก๋„: O(k) : ์—ฌ๊ธฐ์„œ k๋Š” n์— ํฌํ•จ๋œ 1์˜ ๊ฐœ์ˆ˜
50+
๊ณต๊ฐ„๋ณต์žก๋„: O(1)
51+
*/

0 commit comments

Comments
ย (0)