[프로그래머스] 비밀지도
function solution(n, arr1, arr2) {

    const result = arr1.reduce((acc,cur,index)=>{
        const check = checkPosition(
            addZero(n,cur.toString(2)),
            addZero(n,arr2[index].toString(2))
        )
        
        return acc = [...acc,check ]
        
    },[])
    return result;
}

// 이진수 변환후 반복문을 이용해 각자릿수를 비교해야하는데,
// 자리수가 맞지 않는 경우가 존재하여 정해진 자리수만큼 0을 더해주는작업
const addZero = (n, string) => {
    for(let i = 0; i < n; i++){
        if(string.length < n){   
            string = 0 + string
        }    
    }
    return string
}

// 이진수로 변환된 2개의 배열을 파라미터로 받아 두개의 배열을 비교한다.
const checkPosition = (array1,array2) => {
    let result = ''
    for(let i = 0; i<array1.length; i++){
// 반복문을 이용해 같은 index에 위치한 값끼리 비교한다.
// 비트연산자를 이용해 두개의 값이 같으면 1을 반환하는것을 이용해 텍스트 생성
        result += (array1[i] | array2[i]) ? '#' : ' '
    }
    return result
}

https://school.programmers.co.kr/learn/courses/30/lessons/17681

'코딩테스트' 카테고리의 다른 글

[프로그래머스] 푸드 파이트 대회  (2) 2022.11.15
[프로그래머스] 땅따먹기  (0) 2022.10.25
[프로그래머스] 스킬트리  (1) 2022.09.18
[프로그래머스] 타겟넘버  (0) 2022.09.02
[프로그래머스] H-Index  (0) 2022.08.26