본문 바로가기
자바스크립트 코딩테스트

프로그래머스 Level 1 - 비밀지도 (Javascript)

by 준벨롭 2023. 12. 12.

문제

답안

function solution(n, arr1, arr2) {
    var answer = [];
    let map1 = [];
    let map2 = [];
    let arr = [];
    let string = '';
    
    for(let i = 0; i < n; i++){
        // arr을 2진수로 바꿔 빈 자릿수는 0인 n만큼의 자릿수를 map1,2에 넣어준다
        map1.push(arr1[i].toString(2).padStart(n,'0'));
        map2.push(arr2[i].toString(2).padStart(n,'0'));
        for(let j = 0; j < n; j++){
            // 둘 다 0인 곳에는 공백, 그 외에는 '#'을 넣는다
            if(map1[i][j] == 0 && map2[i][j] == 0){
                answer.push(' ');
            } else {
                answer.push('#');
                    }
                }   
        }
    string = answer.join('')
    // 다시 나눠준다
    for(let k = 0; k < Math.floor(string.length/n); k++){
        arr.push(string.slice(n*k,n*(k+1)));
    }
    return arr;
}

후기

padStart, toString, slice와 같은 다양한 메서드를 이용해 문제를 풀어보았다.

조금 더 깔끔하게 풀어보자

728x90