본문 바로가기

problem solving

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

주어진 정수 배열을 이진수 형태의 문자열로 바꾼 후 정답을 출력 문자열에 저장했다.

#include <string>
#include <vector>
 
using namespace std;
 
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    vector<string> answer;
    for(int i = 0; i < n; i++) {
        string temp;
        string A, B;
        
        int div  = 1;
        for(int i = 0; i < n - 1; i++) {
            div *= 2;    
        }
 
        int divA = div;
        while(divA > 0) {
            if(arr1[i] - divA >= 0) {
                A += '1';
                arr1[i] -= divA;
            }
            else {
                A += '0';
            }
            divA /= 2;
        }
        
        while(div > 0) {
            if(arr2[i] - div >= 0) {
                B += '1';
                arr2[i] -= div;
            }
            else {
                B += '0';
            }
            div /= 2;
        }
        
        
        for(int j = 0; j < n; j++) {
            if (A[j] == '0' && B[j] == '0') {
                temp += ' ';
            }
            else {
                temp += '#';
            }
        }
        answer.push_back(temp);
    }
    return answer;
}
cs