function solution(n, arr1, arr2) {
let answer = [];
for(let i = 0; i < n; i++){
const a = arr1[i].toString(2).padStart(n, 0);
const b = arr2[i].toString(2).padStart(n, 0);
let answerAdd = ''
for(let j = 0; j < n; j++){
a[j] === '1' || b[j] === '1' ? answerAdd += '#' : answerAdd += ' ';
}
console.log(answerAdd);
answer.push(answerAdd);
}
// console.log(answer);
return answer;
}
function solution(n, arr1, arr2) {
return arr1.map((v, i) => addZero(n, (v | arr2[i]).toString(2)).replace(/1|0/g, a => +a ? '#' : ' '));
}
const addZero = (n, s) => {
return '0'.repeat(n - s.length) + s;
}
나는 2진수로 바꾸고 padStart
를 써서 0을 채우고 1인 경우 #을 아닌 경우 ' '을 계속해서 더했다.
깔끔한 답은 map
함수를 통해 순회하도록 하고 하나라도 1일 경우 합치기 위해 비트 연산을 사용했다. 그리고 문자열 내에서 1은 #으로 0은 공백으로 바꿨다.