


function solution(n, arr1, arr2) {
let answer = [];
let answerString = '';
let a;
let b;
for (let i = 0; i < n; i++) {
a = arr1[i].toString(2);
b = arr2[i].toString(2);
let aN = n - a.length;
let bN = n - b.length;
if (a.length !== n) {
for (let i = 0; i < aN; i++) {
a = 0 + a;
}
}
if (b.length !== n) {
for (let i = 0; i < bN; i++) {
b = 0 + b;
}
}
// a랑 b를 비교하라
for (let i = 0; i < n; i++) {
if (a[i] === '0' && b[i] === '0') {
answerString += ' ';
} else {
answerString += '#';
}
}
// answer에 알맞은 답을 넣어라.
answer.push(answerString);
answerString = '';
}
return answer;
}
✳️ 풀이 방법 :
1️⃣ Number.prototype.toString() 을 활용해서 2진법의 수를 구했다.
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;
}
✳️ 풀이 방법 :
1️⃣ single vertical var 사용
출처 :
프로그래머스 : 비밀지도 (level 1)
Bitwise OR (|) - JavaScript | MDN
String.prototype.repeat() - JavaScript | MDN