비밀지도

·2022년 4월 8일
0

알고리즘

목록 보기
39/47

이 문제 정말 미친놈마냥 풀었다. 진짜 완전...완전 완전탐색 수준으로 풀었다 진짜

function solution(n, arr1, arr2) {
   let arr11 = [];
arr11 = arr1.map((ele, idx) => ele.toString(2).split(""));
for (let i = 0; i < arr11.length; i++) {
  for (let j = 0; j < arr11.length; j++) {
    if (arr11[i].length !== n) {
      arr11[i].unshift("0");
    }
  }
}
    let arr22 = [];
arr22 = arr2.map((ele, idx) => ele.toString(2).split(""));
for (let i = 0; i < arr22.length; i++) {
  for (let j = 0; j < arr22.length; j++) {
    if (arr22[i].length !== n) {
      arr22[i].unshift("0");
    }
  }
}
    let arr = []
    for(let i=0; i<n; i++){
  arr.push("")
}
    for(let i=0; i<n; i++){
  for(let j=0; j<n; j++){
    if(arr11[i][j]==="0"&&arr22[i][j]==="0"){
      arr[i] = arr[i]+" "
     } else {
       arr[i] = arr[i]+"#"
     }
  }
}
    return arr 
}

코드가 좀 과하게 긴데 어..... 그냥 노가다의 방식으로 풀어나갔다.

  1. 각각 배열을 2진법으로 변환했고 만약 변환을 했을 경우
    1-1 010 이런식으로 나오면 맨 앞은 0을 추가하는 반복문을 또 돌려서 00010을 만드는 식이다.
  2. 그리고 두개의 배열을 전부 비교해서
    2.1 0이 들어있다면 공백을
    2.2 0이 아니라면 #을 추가하고 배열을 리턴하는 방식으로 문제를 풀었다.
profile
물류 서비스 Backend Software Developer

0개의 댓글