알고리즘/프로그래머스
[프로그래머스] [1차] 비밀지도 C++ (Lv.1)
lheunoia
2023. 5. 15. 15:47
https://school.programmers.co.kr/learn/courses/30/lessons/17681
이번 문제는 2018 KAKAO BLIND RECRUITMENT 문제였습니다.
📝 문제 풀이
1. 두 지도의 각 가로열을 or 연산 (지도 중 어느 하나라도 1이면 전체 지도에서도 1이므로)
2. 1의 결과값을 소인수분해
- 2로 나누어 떨어지면 tmp += " "
- 2로 나누어 떨어지지 않으면 tmp += "#"
3. tmp 값 뒤집기
👩🏻💻 C++ 코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
for (int i=0; i<n; i++) {
int num = arr1[i] | arr2[i];
string tmp = "";
while (tmp.length() != n) {
if (num % 2 == 0) tmp += " ";
else tmp += "#";
num /= 2;
}
reverse(tmp.begin(), tmp.end());
answer.push_back(tmp);
}
return answer;
}
반응형