해설
벡터의 각 요소들은 한 행에 대한 정보를 포함하고 있으므로, 이를 분해하여 0인지 1인지 파악한다.
두 지도에 있는 요소들의 비트 연산 값을 통해 둘 중 하나라도 1이면 '#'을, 아니면 ' '을 연결한다.
전체 코드
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <tuple>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <climits>
#include <set>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
using ii = pair<int, int>;
using iii = tuple<int, int, int>;
#define X first
#define Y second
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> ret;
for (int i=0; i<n; i++) {
//i번째 줄 정보 분해
string s = "";
int t1 = arr1[i], t2 = arr2[i];
for (int j=0; j<n; j++) {
//첫번째 지도와 두번째 지도 중 하나라도 1이면 '#', 아니면 ' ' 연결
s = ((t1%2)|(t2%2))? '#'+s : ' '+s;
t1 /= 2; t2 /= 2;
}
ret.push_back(s);
}
return ret;
}
'대딩 > 프로그래머스풀이' 카테고리의 다른 글
[프로그래머스 lv2] 방금그곡 풀이 (0) | 2022.03.21 |
---|---|
[프로그래머스 lv1] [1차]다트게임 풀이 (0) | 2022.03.21 |
[프로그래머스 lv2] [1차]프렌즈4블록 풀이 (0) | 2022.03.20 |
[프로그래머스 lv2] 후보키 풀이 (0) | 2022.03.20 |
[프로그래머스 lv2] 순위 검색 풀이 (0) | 2022.03.19 |
댓글