문제
프로그래머스 문제
내 풀이
- JS에서도 SQL처럼 pad()가 있을 거 같아서 찾아보니 역시나 있었다. 후후
-> padStart(n, s), padEnd(n, s) 이 둘은 처음을 채우냐 끝을 채우냐의 차이다.
function solution(n, arr1, arr2) {
const lines = (arr) => arr.map((num) => parseInt(num.toString(2)));
const sum = lines(arr1).map((line, idx) => (line + lines(arr2)[idx]).toString().padStart(n, "0"));
return sum.map((line) => line.split("").map((num) => num > 0 ? "#": " ").join(""));
}
개선점
- 나처럼 두 라인을 굳이 더하지 않고도 둘 중 하나가 1인지를 알아내는 사람들의 풀이가 많았다.
- | 연산자를 true / false로만 주로 쓰다보니 비트연산자라는 사실을 망각하고 있었다.
var solution=(n,a,b)=>a.map((a,i)=>(a|b[i]).toString(2).padStart(n,0).replace(/0/g,' ').replace(/1/g,'#'))