코딩테스트/프로그래머스
[레벨 1] 비밀지도 - 비트연산
marmelo12
2021. 9. 12. 13:29
반응형
#include <string>
#include <vector>
using namespace std;
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
vector<int> solution;
solution.reserve(n);
for (int i = 0; i < n; ++i)
{
solution.push_back(arr1[i] | arr2[i]);
}
string s;
s.resize(n);
int count;
for (int i = 0; i < n; ++i)
{
count = 1;
for (int j = n - 1; j >= 0; --j)
{
bool k = solution[i] & count;
if (k)
s[j] = '#';
else
s[j] = ' ';
count *= 2;
}
answer.push_back(s);
}
return answer;
}
처음에 두 배열을 or(|)연산으로 합쳐준 후 각 비트 수에 맞는 자리에 &연산을 하여 1이면 #(벽)을 아니면 공백
반응형