[LeetCode] 191. Number of 1 Bits

최대 1 분 소요

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;
    }
};