File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change 1+ """
2+ [Problem]
3+ https://leetcode.com/problems/number-of-1-bits/description/
4+
5+ 양수 n이 주어졌을 때, 이진법에서 1로 설정된 비트의 개수를 반환하는 함수를 작성해라.
6+
7+
8+ [Plan]
9+ 1. 주어진 양수를 이진수로 변환한다.
10+ 2. for-loop을 순회하며 1의 개수를 counting한다.
11+
12+ [Complexity]
13+ N: bin(n).length - 2
14+ Time: O(N)
15+ Space = O(N)
16+ """
17+ class Solution :
18+ def hammingWeight (self , n : int ) -> int :
19+ binary = bin (n )
20+ output = 0
21+ for index in range (2 , len (binary )):
22+ if binary [index ] == '1' :
23+ output += 1
24+ return output
25+ """
26+ ref: https://www.algodale.com/problems/number-of-1-bits/
27+ [Complexity]
28+ Time: O(log n)
29+ Space: O(1)
30+ """
31+ class AnotherSolution :
32+ def hammingWeight (self , n : int ) -> int :
33+ count = 0
34+ while n :
35+ quotient , remainder = divmod (n , 2 )
36+ print (f"n = { n } quotient={ quotient } , remainder={ remainder } " )
37+ count += remainder
38+ n = quotient
39+ return count
40+
41+ sol = AnotherSolution ()
42+ print (sol .hammingWeight (11 ) == 3 )
43+ print (sol .hammingWeight (128 ) == 1 )
44+ print (sol .hammingWeight (2147483645 ) == 30 )
45+
You can’t perform that action at this time.
0 commit comments