58청춘 2024. 9. 27. 13:17
728x90

문제

https://school.programmers.co.kr/learn/courses/30/lessons/17681

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이

입력을로 받은 배열에 저장되어 있는 숫자들을 2진수로 변환한 뒤, 자릿수를 맞춰주고 OR 연산을 이용해 벽의 구현을 진행해준다.

 

코드

const solution = (n, arr1, arr2) => {
  arr1 = arr1.map(e => {
    let binary = e.toString(2);
    const len = binary.length;
    for (let i = 0; i < n - len; i++) {
      binary = '0' + binary;
    }
    return binary.split('').map(Number);
  });
  arr2 = arr2.map(e => {
    let binary = e.toString(2);
    const len = binary.length;
    for (let i = 0; i < n - len; i++) {
      binary = '0' + binary;
    }
    return binary.split('').map(Number);
  })
  return arr1.map((el, idx) => {
    return el.map((e, i) => {
      return (e || arr2[idx][i]) === 1 ? '#' : ' ';
    }).join('')
  })
};
728x90