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;
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 두 큐 합 같게 만들기 C++ (Lv.2) (0) | 2023.05.15 |
---|---|
[프로그래머스] 메뉴 리뉴얼 C++ (Lv.2) (0) | 2023.05.11 |
[프로그래머스] 순위 검색 C++ (Lv.2) (0) | 2023.05.09 |
[프로그래머스] 크레인 인형뽑기 게임 C++ (Lv.1) (0) | 2023.05.01 |
[프로그래머스] 키패드 누르기 C++ (Lv.1) (0) | 2023.05.01 |