https://programmers.co.kr/learn/courses/30/lessons/17681
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
for (int i = 0; i < n; i++) {
string sharp;
sharp.reserve(n);
while (arr1[i] > 0 || arr2[i] > 0)
{
int sharp1 = arr1[i] % 2;
int sharp2 = arr2[i] % 2;
arr1[i] /= 2;
arr2[i] /= 2;
if (sharp1 == 1 || sharp2 == 1) {
sharp.push_back('#');
}
else
sharp.push_back(' ');
}
while (sharp.size() != n)
{
sharp.push_back(' ');
}
reverse(sharp.begin(), sharp.end());
answer.emplace_back(sharp);
}
return answer;
}
이 방법 말고는 비트 연산이 있겠다.