문제를 본 날: 2022년 11월 6일 오후 3:44 (GMT+9)

문제를 푼 날: 2022년 11월 6일 오후 3:44 (GMT+9)

https://leetcode.com/problems/counting-bits/

Given an integer n, return an array ans of length n + 1 such that for each i (0 <= i <= n), ans[i] is the number of 1's* in the binary representation of* i.

Example 1:

Input: n = 2
Output: [0,1,1]
Explanation:
0 --> 0
1 --> 1
2 --> 10

Example 2:

Input: n = 5
Output: [0,1,1,2,1,2]
Explanation:
0 --> 0
1 --> 1
2 --> 10
3 --> 11
4 --> 100
5 --> 101

Constraints:

Follow up:

Solution

class Solution {
public:
    
    int count1(int n){
        int ret = 0;
        while(n > 0){
            ret += (n & 1);
            n >>= 1;
        }
        
        return ret;
    }
    
    vector<int> countBits(int n) {
        vector<int> ret(n+1, 0);
        
        for(int i=0;i<=n;i++){
            ret[i] = count1(i);
        }
        
        return ret;
    }
};