프로그래머스Lv1 - [1차] 비밀지도

코드

function solution(n, arr1, arr2) {
    var answer = [];
    
    for(let i=0;i<n;i++) {
        let trans = (arr1[i] | arr2[i]).toString(2);
        trans = trans.padStart(n,'0');

        // trans = trans.length >= n ? trans:new Array(n-trans.length+1).join('0')+trans;//남는 길이만큼 0으로 채움
        let regex = /1/ig;
        trans = trans.replace(regex, '#')
        regex = /0/ig;
        trans = trans.replace(regex, ' ')
        answer.push(trans)
    }
    return answer;
}

풀이 및 소감

이 전 문제에서 알게 된 toString(2)를 사용해 2진법으로 변환시키고 or 연산자인 |를 사용하여 지도를 합쳐주었다. 문제는 0으로 시작하면 0이 제외된 1부터 나왔는데 padStart라는 게 있어서 사용을 했다. 주석으로 사용한 부분도 남는 길이만큼 0으로 채우는 것이다. 그리고 나서 정규식을 활용하여 1은 '#'으로 0은 ' '으로 치환해주었다. regex를 두번 넣어주는 게 아니라 replace를 한줄로 작성했으면 더 깔끔한 코드가 됐을 거 같다. 그리고 0을 넣는 방법도 repeat을 사용했어도 됐을 거 같다.

좋은 웹페이지 즐겨찾기