Skip to content

Commit 9939e5c

Browse files
committed
add solution: number-of-1-bits
1 parent b00c57f commit 9939e5c

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

โ€Žnumber-of-1-bits/ZetBe.pyโ€Ž

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
'''
2+
๋ฌธ์ œ: ์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n์˜ ์ด์ง„ ํ‘œํ˜„์—์„œ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.
3+
ํ’€์ด: 2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ์ˆ˜๋“ค์„ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•ด๋‘๊ณ , n์—์„œ ํฐ ์ˆ˜๋ถ€ํ„ฐ ๋นผ๊ฐ€๋ฉฐ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ’€์ด
4+
์‹œ๊ฐ„๋ณต์žก๋„: O(log n)
5+
2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ์ˆ˜๋“ค์„ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ O(log n)์ด ๊ฑธ๋ฆฌ๊ณ , n์—์„œ ํฐ ์ˆ˜๋ถ€ํ„ฐ ๋นผ๊ฐ€๋ฉฐ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” ๋ฐ๋„ O(log n)์ด ๊ฑธ๋ฆฌ๋ฏ€๋กœ ์ „์ฒด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(log n)์ด๋‹ค.
6+
๊ณต๊ฐ„๋ณต์žก๋„: O(log n)
7+
2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ์ˆ˜๋“ค์„ ์ €์žฅํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ „์ฒด ๊ณต๊ฐ„๋ณต์žก๋„๋Š” O(log n)์ด๋‹ค.
8+
์‚ฌ์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ: ๋ฆฌ์ŠคํŠธ
9+
'''
10+
11+
12+
class Solution:
13+
def hammingWeight(self, n: int) -> int:
14+
b = []
15+
now = 1
16+
answ = 0
17+
for i in range(35):
18+
b.append(now)
19+
now *= 2
20+
21+
num = n
22+
for i in range(34, -1, -1):
23+
if num >= b[i]:
24+
num -= b[i]
25+
answ += 1
26+
return answ
27+
28+

0 commit comments

Comments
ย (0)