Skip to content

Commit 3031884

Browse files
committed
feat: number-of-1-bits
1 parent 7672c10 commit 3031884

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Intuition
2+
๋น„ํŠธ ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ณ„์‚ฐํ•œ๋‹ค.
3+
# Approach
4+
1. `n`๊ณผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•œ `mask`๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
5+
2. `mask`๋ฅผ 2์ง„์ˆ˜ `1`, `10`, `100` ์ˆœ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚จ ํ›„ `&` ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•ด, n์˜ ํŠน์ • ๋น„ํŠธ๊ฐ€ `1`์ธ์ง€ ํŒ๋‹จํ•œ๋‹ค.
6+
3. ์ฐธ์ธ ๊ฒฝ์šฐ `cnt`๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ•œ๋‹ค.
7+
8+
# Complexity
9+
- Time complexity: $$O(logn)$$
10+
<!-- Add your time complexity here, e.g. $$O(n)$$ -->
11+
: `mask`๊ฐ€ ์žˆ๋Š” ๋ฐ˜๋ณต๋ฌธ์— ์˜ํ•ด ๊ฒฐ์ •๋œ๋‹ค. `mask`๋Š” ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜จ `n`๊นŒ์ง€ 2๋ฐฐ์”ฉ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ $$O(logn)$$์ด๋‹ค.
12+
- Space complexity: $$O(1)$$
13+
<!-- Add your space complexity here, e.g. $$O(n)$$ -->
14+
: ๋ณ„๋„ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
15+
# Code
16+
```
17+
func hammingWeight(n int) int {
18+
cnt := 0
19+
for mask := 1; mask <= n; mask = mask << 1 {
20+
if (mask & n) != 0 {
21+
cnt += 1
22+
}
23+
}
24+
return cnt
25+
}
26+
```
27+
28+
# What I learned
29+
- ๊ณ ์–ธ์–ด์—์„œ ์ฒซ ๋น„ํŠธ ์—ฐ์‚ฐ์ž ํ™œ์šฉ

0 commit comments

Comments
ย (0)