반응형
<코드>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int X, K, now, index;
long long ans;
int x[65], k[65];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> X >> K;
index = 0;
while (X >= 1)
{
if (X % 2 == 1) x[index] = 1;
else x[index] = 0;
X /= 2;
index++;
}
index = 0;
while (K >= 1)
{
if (K % 2 == 1) k[index] = 1;
else k[index] = 0;
K /= 2;
index++;
}
for (int i = 0; i < 65; i++)
{
if (x[i] == 0)
{
if (k[now] == 1) ans += ((long long)1 << i);
now++;
}
}
cout << ans;
}
<비트 연산을 이용한 숏코딩>
#include<iostream>
#include<algorithm>
using namespace std;
long long X, K, j;
long long ans;
int main()
{
cin >> X >> K;
X = ~X;
for (int i = 0; i < 64; i++)
{
if (((long long)1 << i) & X)
{
if (((long long)1 << j) & K)
ans += ((long long)1 << i);
j++;
}
}
cout << ans;
}
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[C/C++] 백준 2667번 - 단지번호붙이기 (BFS) (0) | 2021.01.31 |
---|---|
[C/C++] 백준 7576번 - 토마토 (BFS) (0) | 2021.01.31 |
[C/C++] 백준 12904번 - A와 B (0) | 2021.01.30 |
[C/C++] 백준 17626번 - Four Squares (3) | 2021.01.30 |
[C/C++] 백준 3109번 - 빵집 (0) | 2021.01.28 |