bdfgdfg

[레벨 1] 비밀지도 - 비트연산 본문

코딩테스트/프로그래머스

[레벨 1] 비밀지도 - 비트연산

marmelo12 2021. 9. 12. 13:29
반응형
#include <string>
#include <vector>

using namespace std;

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    vector<string> answer;
    vector<int> solution;
    solution.reserve(n);
    for (int i = 0; i < n; ++i)
    {
        solution.push_back(arr1[i] | arr2[i]);
    }
    string s;
    s.resize(n);
    int count;
    for (int i = 0; i < n; ++i)
    {
        count = 1;
        for (int j = n - 1; j >= 0; --j)
        {
            bool k = solution[i] & count;
            if (k)
                s[j] = '#';
            else
                s[j] = ' ';
            count *= 2;
        }
        answer.push_back(s);
    }

    return answer;
}

처음에 두 배열을 or(|)연산으로 합쳐준 후 각 비트 수에 맞는 자리에 &연산을 하여 1이면 #(벽)을 아니면 공백

반응형

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[레벨 2 ] 최솟값 만들기  (0) 2021.09.17
[레벨 2] 행렬의 곱셈  (0) 2021.09.17
[레벨 1] 부족한 금액 계산하기  (0) 2021.09.09
[레벨 1] 2016년  (0) 2021.09.08
[레벨1] 내적  (0) 2021.09.08
Comments