Skip to content

Commit 74270b0

Browse files
committed
solution: number-of-1-bits
1 parent 24d7e7e commit 74270b0

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

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

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,40 @@ def hammingWeight(self, n: int) -> int:
4646

4747
sol = Solution()
4848
print(sol.hammingWeight(11))
49+
50+
51+
### 6๊ธฐ ###
52+
from collections import Counter
53+
54+
55+
class Solution:
56+
def hammingWeight(self, n: int) -> int:
57+
58+
binary = []
59+
60+
# ๋ฐ˜๋ณต - ์‹œ์ž‘/์ข…๋ฃŒ ์กฐ๊ฑด
61+
while n != 0:
62+
# n/2์˜ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€ ๋‘˜ ๋‹ค ํ•„์š”
63+
n, remainder = divmod(n, 2)
64+
binary.append(remainder)
65+
66+
return Counter(binary)[1]
67+
68+
69+
# ๋น„ํŠธ ์‹œํ”„ํŠธ(Bit Shift) ์—ฐ์‚ฐ
70+
def hammingWeight_bit(n: int) -> int:
71+
count = 0
72+
73+
while n != 0:
74+
count += n & 1 # 1. n์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ๋น„ํŠธ๊ฐ€ 1์ด๋ฉด ๋”ํ•จ
75+
n >>= 1 # 2. n์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ ์ด๋™ (n์„ 2๋กœ ๋‚˜๋ˆ”)
76+
77+
return count
78+
79+
80+
""" Q. binary๋ฅผ ์„ ์–ธํ•  ๋•Œ list / str ์ค‘ ํšจ์œจ์ ์ธ๊ฒƒ์€?
81+
- list : O(1)
82+
- str
83+
- Python์—์„œ ๋ฌธ์ž์—ด์€ ๋ถˆ๋ณ€(Immutable) ์ž๋ฃŒํ˜•
84+
- ๋ฌธ์ž์—ด์— ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด ์ „์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ธฐ์กด ๋ฌธ์ž์—ด์ด ๋ณต์‚ฌ๋˜์–ด์•ผ ํ•จ O(n^2)
85+
"""

0 commit comments

Comments
ย (0)