이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다.
문제 정의
unsigned int 입력의 1비트 개수 출력
책에서 구현된 코드
# 문자열 사용
class Solution:
def hammingWeight(self, n: int) -> int:
return bin(n).count('1')
# 문자열 없이 구현
class Solution:
def hammingWeight(self, n: int) -> int:
count = 0
while n:
# 1을 뺀 값과 AND 연산 횟수 측정
n &= n - 1
count += 1
return count
기억해야할 기법
내가 구현한 코드
# 문자열 사용
class Solution:
def hammingWeight(self, n: int) -> int:
return sum(map(int, bin(n)[2:]))
# 문자열 없이 구현
class Solution:
def hammingWeight(self, n: int) -> int:
cnt = 0
while n:
cnt += n & 0b1
n >>= 1
return cnt
- 비슷하게 구현했다
'책읽기' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰][슬라이딩윈도우] 최대 슬라이딩 윈도우 (0) | 2021.08.16 |
---|---|
[파이썬 알고리즘 인터뷰] 20장 - 슬라이딩 윈도우 (0) | 2021.08.16 |
[파이썬 알고리즘 인터뷰][비트연산] UTF-8 검증 (0) | 2021.08.16 |
[파이썬 알고리즘 인터뷰][비트연산] 두 정수의 합 (0) | 2021.08.16 |
[파이썬 알고리즘 인터뷰][비트연산] 해밍 거리 (0) | 2021.08.16 |