Notice
Recent Posts
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Today
Total
관리 메뉴

차차로그

[JS] 2018 KAKAO BLIND RECRUITMENT[1차] > 비밀지도 본문

코딩테스트

[JS] 2018 KAKAO BLIND RECRUITMENT[1차] > 비밀지도

차차한 2022. 8. 23. 10:33

function solution(n, arr1, arr2) {
    
    var answer = [];
    
    arr1 = arr1.map(v => v.toString(2).padStart(arr1.length, "0"));
    arr2 = arr2.map(v => v.toString(2).padStart(arr2.length, "0"));
    
    for(var i = 0; i < arr1.length; i++){
        var map = "";
        for(var j = 0; j < arr1.length; j++){

            if(arr1[i][j] + arr2[i][j] >= 1){
                map += "#";
            }else{
                map += " ";
            }
        }
        answer[i] = map;
    }

    return answer;
}

arr1과 arr2에 저장되어있는 값을 이진수로 변환하기 위해 map을 이용해 배열을 반복하고 2진수로 변환해 담아줬다.

이때 가장 앞에 있는 0은 없어져서 padStart로 앞에 0을 붙여줬다.

그 후 반복을 돌려서 둘 중 하나라도 1이면 벽을 뜻하는 #을 넣어줘야 하기에 둘을 더했을 때 1이상이면 #을 넣고, 아니라면 공백을 넣어 지도를 완성했다.

var solution=(n,a,b)=>a.map((a,i)=>(a|b[i]).toString(2).padStart(n,0).replace(/0/g,' ').replace(/1/g,'#'))

다른 사람 풀이

여기서는 replace를 써서 0은 ' '로, 1은 '#'로 바꿔저ㅜㅆ다

Comments