프로그래머스 Lv.1 비밀지도

Kim Jason·2023년 4월 3일
0

알고리즘 노트

목록 보기
21/35
post-thumbnail

2018 카카오 블라인드 채용

💁🏻 코드

function solution(n, arr1, arr2) {
    const map1 = arr1.map(el => el.toString(2).padStart(n, '0').split('').map(el => {
        if (!+el) return ' ';
        return '#';
    }));
    const map2 = arr2.map(el => el.toString(2).padStart(n, '0').split('').map(el => {
        if (!+el) return ' ';
        return '#';
    }))
    
    return map1
        .map((_, i) => map2[i].map((_, j) => {
            return map1[i][j] === '#' || map2[i][j] === '#' ? '#' : ' ';
        }))
        .map(el => el.join(''));
}

입력값의 제한은 다음과 같다.

  • 1 <= 지도 한 변의 길이 <= 16

딱히 특정 알고리즘을 지양해야겠다고 생각하지는 않았다.
이중 배열을 처리할 때는 이중으로 map을 사용하자.
✨ 참고로 문자열 메서드인 padStart()padEnd()를 알아두자!

profile
성장지향형 프론트엔드 개발자

0개의 댓글