[LeetCode] 191. Number of 1 Bits
LeetCode - 191. Number of 1 Bits 알고리즘 문제 풀이
분류
문제 링크 : https://leetcode.com/problems/number-of-1-bits/
풀이
uint32_t
범위의 숫자를 이진법으로 표현했을 때 1의 개수가 몇 개인지 구하는 문제이다.
(uint32_t
타입은 unsigned int
와 동일하다.)
입력 조건에 의해 32비트까지 사용할 수 있으므로 좌측 쉬프트 연산과 AND연산을 활용하여 특정 위치의 비트가 1인지 확인하고, 그 개수를 누적하여 반환한다.
소스 코드
class Solution {
public:
int hammingWeight(uint32_t n) {
int cnt = 0;
for (int i = 0; i < 32; ++i) {
if ((n & (1 << i)) != 0) {
++cnt;
}
}
return cnt;
}
};