문제

n이 0이 될 때 까지 n &= (n-1)으로 최하위 1을 제거해가며 1의 개수를 구한다.

class Solution {
public:
    int count1s(int n) {
        int cnt = 0;
        
        while(n) {
            n &= (n-1);
            cnt++;
        }
        return cnt;
    }
    
    vector<int> countBits(int n) {
        int i;
        vector<int> ans;
        for(i = 0; i <= n; i++) ans.push_back(count1s(i));
        return ans;        
    }
};