[Leetcode/C++] 191_Number of 1 Bits
문제는 다음과 같습니다.
지난주 스터디에 이어 아마 마지막? 비트조작 문제입니다.
그냥 맨 오른쪽 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의 모든 비트를 확인하게됩니다.
Author And Source
이 문제에 관하여([Leetcode/C++] 191_Number of 1 Bits), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ssssujini99/LeetcodeC-191Number-of-1-Bits저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)