[LeetCode] 1680 - Concatenation of Consecutive Binary Numbers
문제
- 링크: https://leetcode.com/problems/concatenation-of-consecutive-binary-numbers
- 난이도: Medium
- 태그: 수학, 비트 조작, 시뮬레이션
- 결과:
Time: 24 ms (82.55%), Space: 7.9 MB (99.33%)
풀이
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진수 왜 이렇게 많이 나오지…-_-;;
댓글남기기