[프로그래머스 문제풀이34]비밀지도 자바스크립트

매드갈릭레드망고·2021년 9월 28일
0
function solution(n, arr1, arr2) {
    var answer =[];

    arr1=decodeArr(arr1);
    arr2=decodeArr(arr2);
    for(let i=0;i<n;i++){
        answer[i]=(arr1[i]+arr2[i]).toString();
    }
    answer=answer.map((row)=>{
        const rowArray=[...row];
        let decodeArray="";
        if(rowArray.length!==n){
            while(true){
                rowArray.unshift("0");
                if(rowArray.length===n)
                    break;
            }
        }
        rowArray.map((cell)=>{
            if(cell!=0){
               decodeArray+="#";
            }else{
            decodeArray+=" ";
            }
        })
        return decodeArray;
    })
    return answer;
}
function decodeArr(array){
    return array.map((val)=>{
        const num=val.toString(2);
        return Number(num);   
    })
}

10진법을 2진법으로 바꾼후
바꾼 것을 같은 줄끼리 다시 10진법 덧셈으로 더한다.
그후 0이아닌것을 벽으로 처리하면됨

앞에 0이오는 2진법수는 더했을 때 덧셈 할 때 십진법으로 바껴서 자리수가 낮아지니까 다시 채워줘야됨

0개의 댓글