코딩 테스트

프로그래머스 1차 비밀지도

__sapar 2024. 2. 14. 17:05

 

#include <string>
#include <vector>
#include <algorithm>

using namespace std;



vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    vector<string> answer(n);
    vector<string> translate(n);
    vector<string> translate2(n);
    
    for(int i = 0; i< arr1.size(); ++i)
    {
        while(arr1[i]>0)
        {
            int n = arr1[i] % 2;            
            translate[i] += n + '0';            
            arr1[i] /= 2;            
        }
        while(translate[i].length() < n)
        {
            translate[i] += '0';
        }
        reverse(translate[i].begin(),translate[i].end());
        
        while(arr2[i]>0)
        {
            int n = arr2[i] % 2;            
            translate2[i] += n + '0';            
            arr2[i] /= 2;            
        }     
        while(translate2[i].length() < n)
        {
            translate2[i] += '0';
        }
        reverse(translate2[i].begin(),translate2[i].end());
    }
    
    for(int i = 0; i<n;++i)
    {
        for(int j=0;j<n; ++j)
        {
            if(translate[i][j] == '0' && translate[i][j] == translate2[i][j])
                answer[i] += ' ';
            else
            {
                answer[i] += '#';
            }
        }
    }
    
    return answer;
}