[Leetcode/C++] 191_Number of 1 Bits

이수진·2022년 1월 27일
0

문제는 다음과 같습니다.

지난주 스터디에 이어 아마 마지막? 비트조작 문제입니다.

그냥 맨 오른쪽 1비트부터 시작해 32비트까지 돌면서 자리수가 1인 비트를 세주면 되는 매우 쉬운 문제입니다.

제 풀이는 다음과 같습니다.

class Solution {
public:
    int hammingWeight(uint32_t n) {
        int b=1, cnt=0; // cnt는 1의 개수
        for(int i=0; i<32; i++){
            if(n & b) cnt++;
            if(i==31) break;
            b = b<<1;
        }
        return cnt;
    }
};

결과계산은 변수 cnt에 담았구요,
변수 b를 1부터 시작해 왼쪽으로 shift 연산을 하여 입력받은 변수 n의 모든 비트를 확인하게됩니다.

profile
꾸준히, 열심히, 그리고 잘하자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN