문제설명
- 지도는 한 변의 길이가 n인 정사각형 배열 형태
- '공백' 또는 '벽(#)' 두 종류로 이루어짐
- 지도 1과 지도 2를 겹쳐 어느 하나라도 벽인 부분은 전체지도에서 벽, 모두 공백인 부분은 전체지도에서 공백
- 지도 1과 지도 2는 정수 배열로 암호화되어 있음
- 벽 부분을 1, 공백 부분을 0으로 부호화

입력형식
- 한 변의 크기 n, 2개의 정수배열 arr1, arr2
- 1<=n<=16
- arr1, arr2는 길이가 n인 정수배열
- 정수 배열의 각 원소 x를 이진수로 변환했을 때의 길이는 n이하 즉, 0<=x<=2^n-1
풀이
function solution(n, arr1, arr2) {
let answer = [];
const doubleArr1 = arr1.map(num=>{
let doubleNum = num.toString(2).split('');
for(let i = doubleNum.length;i<n;i++){
doubleNum.unshift('0');
}
return doubleNum.join('');
});
const doubleArr2 = arr2.map(num=>{
let doubleNum = num.toString(2).split('');
for(let i = doubleNum.length;i<n;i++){
doubleNum.unshift('0');
}
return doubleNum.join('');
});
for(let i=0;i<doubleArr1.length;i++){
let emptyStr = '';
const num1 = doubleArr1[i];
const num2 = doubleArr2[i];
for(let j=0;j<num1.length;j++){
if(num1[j] === '1' || num2[j] === '1')
emptyStr += '1';
else
emptyStr += '0';
}
answer.push(emptyStr);
}
const answer2 = answer.map(key=>{
const keyArr = key.split('').map(num=>{
if(num === '1')
return '#';
else
return ' ';
})
return keyArr.join('');
});
return answer2;
}