function solution(n, arr1, arr2) {
var answer = [];
for(let i=0;i<n;i++) {
let trans = (arr1[i] | arr2[i]).toString(2);
trans = trans.padStart(n,'0');
// trans = trans.length >= n ? trans:new Array(n-trans.length+1).join('0')+trans;//남는 길이만큼 0으로 채움
let regex = /1/ig;
trans = trans.replace(regex, '#')
regex = /0/ig;
trans = trans.replace(regex, ' ')
answer.push(trans)
}
return answer;
}
이 전 문제에서 알게 된 toString(2)
를 사용해 2진법으로 변환시키고 or 연산자인 |
를 사용하여 지도를 합쳐주었다. 문제는 0으로 시작하면 0이 제외된 1부터 나왔는데 padStart
라는 게 있어서 사용을 했다. 주석으로 사용한 부분도 남는 길이만큼 0으로 채우는 것이다. 그리고 나서 정규식을 활용하여 1은 '#'으로 0은 ' '으로 치환해주었다. regex를 두번 넣어주는 게 아니라 replace를 한줄로 작성했으면 더 깔끔한 코드가 됐을 거 같다. 그리고 0을 넣는 방법도 repeat
을 사용했어도 됐을 거 같다.