프로그래머스 Lv.1 : [1차] 비밀지도

zeroequaltwo·2022년 11월 18일
0

코딩테스트

목록 보기
34/69

문제

프로그래머스 문제

내 풀이

  • 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,'#'))
profile
나로 인해 0=2가 성립한다.

0개의 댓글