👉 문제 풀러가기 : https://school.programmers.co.kr/learn/courses/30/lessons/17681?language=javascript
너무 길어서 생략..
function solution(n, arr1, arr2) {
//최종적으로 예쁘게 담을 배열
let result = [];
for (let i = 0; i < n; i++) {
//||만 썼다가 |를 처음 보는데 둘 중 하나라도 1이면 1을 반환한다
//'11111'
//'10101'
//'11101'
//'10011'
//'11111'
const binary = (arr1[i] | arr2[i]).toString(2);
//만약 "1011"이면 5로 맞춰야하니까 "01011"로 만들기 위한 로직이다. + binary를 꼭 해줘야 문자열이 이어짐
const paddedBinary = '0'.repeat(n - binary.length) + binary;
//paddedBinary에서 1을 "#"으로 바꾸고 0을 " "으로 바꾸는 작업을 하는 과정
const line = paddedBinary.replace(/1/g, '#').replace(/0/g, ' ');
//작업이 끝난 line을 result 배열에 담아주면 원하는 로직이 끝이난다!
result.push(line);
}
return result;
}
console.log(solution(5, [9, 20, 28, 18, 11], [30, 1, 21, 17, 28])) //["#####","# # #", "### #", "# ##", "#####"]
비트 연산자인 |이 되게 신기했다. 뭔가 기초가 부족해서 결국엔 답을 본것 같은데, 꼭 잊지않고 활용해야겠다 :)