본문 바로가기
JavaScript

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

by 어느새벽 2024. 11. 14.
function solution(n, arr1, arr2) {
    const answer = [];

    for (let i = 0; i < n; i++) {
        // arr1[i]와 arr2[i]를 OR 연산하여 이진수로 바꾸고 n의 길이까지 돌림
        const binary = (arr1[i] | arr2[i]).toString(2).padStart(n, '0');
        
        // 이진수 문자열에서 1이면 "#"을, 0이면 " "을 추가한다.
        const line = binary.replace(/1/g, '#').replace(/0/g, ' ');
        
        // 결과를 answer 배열에 추가한다.
        answer.push(line);
    }

    return answer;
}

 

다시한번 짚고 넘어가는 toString()과 padStart

num.toString(2) : 배열이 아닌 정수에 toString 메서드를 쓰고 인수에 숫자를 넣으면 해당하는 진수법으로 변환해준다.

padStart(str.length, "any") : 첫번째 인자는 인덱스가 아닌 문자열의 길이를 넣는다. 원하는 길이가 될때까지 채운다. 두번째 인자는 첫번째 인자의 길이가 될때까지 채우는 내용이다.