프로그래머스 : 비밀지도

KHW·2022년 1월 9일
0

코딩테스트

목록 보기
15/17
post-custom-banner

문제

100/100
30분소요

나의코드

function solution(n, arr1, arr2) {
 const binaryArr1 = arr1.map((val,idx)=>{
     let changeBinaryArr1 = val.toString(2)
     const addArr1SpaceCount = arr1.length - changeBinaryArr1.length 
     changeBinaryArr1 = ' '.repeat(addArr1SpaceCount).concat(changeBinaryArr1).replace(/[1]/g,'#').replace(/[0]/g,' ')
     return changeBinaryArr1
 })
 
  const binaryArr2 = arr2.map((val,idx)=>{
     let changeBinaryArr2 = val.toString(2)
     const addArr2SpaceCount = arr1.length - changeBinaryArr2.length 
     changeBinaryArr2 = ' '.repeat(addArr2SpaceCount).concat(changeBinaryArr2).replace(/[1]/g,'#').replace(/[0]/g,' ')
      return changeBinaryArr2
 })
    return binaryArr1.map((binaryRowArr1,row)=>{
        return binaryRowArr1.split('').map((binaryVal,column)=>{
            if(binaryVal === ' ' &&  binaryArr2[row][column] === ' ')
                return ' '
            else
                return '#'
        }).join('')
    })
}

천천히 접근했다.

  • 각각의 #과 공백을 가진 binaryArr1 과 binaryArr2를 만들고
    이를 순회하면서 둘다 공백일때와 그외를 비교하며 반환을 처리했다.

주의해야할 점

기본적으로 간단한 이진수 변환인 toString(2)을 베이스로
이진수로 바꾼 크기만큼 존재하지않는 남은 부분을 메울수 있는 repeat의 추가사용법과
map의 활용성에 따르는 split으로 분리 후 다시 일차원 배열로 만드는 join 메소드까지 다양한 메소드를 이해하고 사용하는 것이 필요했다.

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자
post-custom-banner

0개의 댓글