문제

풀이

class Solution {
public:
    int concatenatedBinary(int n) {
        const int MOD = 1e9+7;
        int len = 0;
        long long res = 0;
        for (int i = 1; i <= n; i++) 
        {
            if ((i & (i - 1)) == 0) 
            {
                len++;
            }
            
            res = ((res << len) | i) % MOD;
        }
        
        return res;
    }
};

문제의 설명에 충실하게 따르면 되는 문제였다. 2의 승수 판별법을 알고 있다면 쉬워지는 문제다.

배운 점과 후기

Daily Question에 2진수 왜 이렇게 많이 나오지…-_-;;

댓글남기기