개발자/프로그래머스 알고리즘
코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 js ★★★☆☆
YoungDogg
2022. 2. 7. 14:58
코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
구현문제
내 코드
const elements2Binry = (n, arr) =>{
// 배열 값들을 이진법으로 만들고
// console.log(`arr:${arr}`);
let result = [];
for(let i = 0; i < arr.length; i++){
let arrNum = arr[i];
// console.log(`arrNum:${arrNum}`);
let decmal2BinryArr = [];
// 2진법으로 바꾸기
while(arrNum > 1){
decmal2BinryArr.unshift(arrNum % 2);
arrNum = Math.floor(arrNum / 2);
}
decmal2BinryArr.unshift(arrNum);
// 0 채우기
while(decmal2BinryArr.length !== n){
decmal2BinryArr.unshift(0);
}
// console.log(`decmal2BinryArr:${decmal2BinryArr}`);
result.push(decmal2BinryArr);
}
return result;
}
const solution = (n, arr1, arr2) => {
let answer = [];
let binaryArr1 = [];
let binaryArr2 = [];
let newArr = [];
binaryArr1 = elements2Binry(n, arr1);
binaryArr2 = elements2Binry(n, arr2);
// console.log(binaryArr1);
// console.log(binaryArr2);
// console.log("===========");
// 그 이진법을 비교해서
// 벽, 공백으로 만들자
for(let i = 0; i < n; i++){
for(let j = 0; j < n; j++){
if(binaryArr1[i][j] === 0 && binaryArr2[i][j] === 0){
binaryArr1[i][j] = " ";
}
else{
binaryArr1[i][j] = '#';
}
}
}
// console.log(binaryArr1);
for(let i = 0; i < binaryArr1[0].length; i++){
binaryArr1[i] = binaryArr1[i].join('');
}
return binaryArr1;
};