*문제 출처는 프로그래머스에 있습니다.
문제 제목: [1차] 비밀지도 (1단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/120817
문제 설명
나의 풀이
#include <string>
#include <vector>
using namespace std;
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
vector<int> t;
string strl = "";
for (int i = 0; i < arr1.size(); i++)
t.push_back(arr1[i] | arr2[i]);
for (int k = 0; k < t.size(); k++) {
strl.clear();
for (int j = n - 1; j >= 0; j--) {
int temp = (t[k] >> j) & 1;
if (temp == 0) strl += " ";
else if (temp == 1) strl += "#";
}
answer.push_back(strl);
}
return answer;
}
※ 알아야 할 것
시프트(<<, >>)로 적은 숫자만큼 밀어낸다.
비트 연산할 때 OR(|), AND(&), XOR(^), NOT(~)으로 사용한다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-C++' 카테고리의 다른 글
Programmers / 유한소수 판별하기 / C++ (0) | 2024.01.30 |
---|---|
Programmers / 소수 찾기 / C++ (0) | 2024.01.29 |
Programmers / 문자열 내 마음대로 정렬하기 / C++ (0) | 2024.01.24 |
Programmers / 행렬의 덧셈 / C++ (0) | 2024.01.22 |
Programmers / 문자열 나누기 / C++ (0) | 2024.01.22 |