https://programmers.co.kr/learn/courses/30/lessons/17681
function solution(n, arr1, arr2) {
var answer = [];
var temp = [];
for(var i=0; i<n; i++){
var e1 = arr1[i].toString(2);
var e2 = arr2[i].toString(2);
if(e1.length < n) {
const add = n-e1.length;
for(var j=0;j<add;j++){
e1 = '0'+e1;
}
}
if(e2.length < n) {
const add = n-e2.length;
for(var j=0;j<add;j++){
e2 = '0'+e2;
}
}
for(var j=0; j<n; j++){
if((e1[j] === '0')&&(e2[j] === '0')){
temp[j] = ' ';
}else{
temp[j] = '#';
}
}
var str = temp.join('');
answer.push(str);
}
return answer;
}
array, string 관련 method사용해서 코드 단순화하기
오래걸린 부분 : 초기할당값이 var a = []
인 배열에 a[i][j]
의 형식으로 값을 할당하기 (이번 코드에선 사실 불필요 했는데, 자주 마주치는 문제)
//1
function solution(n, arr1, arr2) {
return arr1.map((i, index) =>('0'.repeat(n) + (i | arr2[index]).toString(2)).slice(-n)).map(i => i.replace(/0/g, ' ').replace(/1/g, '#'));
}
//2
var solution=(n,a,b)=>a.map((a,i)=>(a|b[i]).toString(2).padStart(n,0).replace(/0/g,' ').replace(/1/g,'#'))
string method - repeat()
정규식 - replace()
숫자를 이진수로 변환하기 - toString(2)