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 |
Comment