처음에는 둘다 2진수로 바꾸고 비교를 해보면 되겠다고 생각을 했는데 비트연산자를 사용해서 미리 연산을 해두고 2진수 변환을 하면 더 좋다는 걸 알게되어서 그렇게 구현해 보았다
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
int a,b;
for(int i=0;i<n;i++){
string tmp="";
arr1[i]=arr1[i] | arr2[i]; //비트 OR연산해서 하나라도 1이면 1
while(tmp.size()!=n){ //2진수변환과 동시에 지도 만들기
if(arr1[i]%2==0){
tmp.push_back(' ');
}else{
tmp.push_back('#');
}
arr1[i]/=2;
}
reverse(tmp.begin(),tmp.end());
answer.push_back(tmp);
}
return answer;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][LV 1][C++] 소수 만들기 (0) | 2024.03.01 |
---|---|
[프로그래머스][LV 1][C++] 2016년 (0) | 2024.02.29 |
[프로그래머스][C++][LV 1] 최대공약수와 최소공배수 (0) | 2024.02.26 |
[프로그래머스][C++][LV 2] 다리를 지나는 트럭 (0) | 2024.02.13 |
[프로그래머스][C++][LV 2] [1차] 프렌즈4블록 (0) | 2024.02.05 |