프로그래머스 [1차] 비밀지도
May 16, 2021
»
JavaScript
프로그래머스 [1차] 비밀지도
function solution(n, arr1, arr2) {
let result = [];
let map1 = [];
let map2 = [];
let temp1 = "";
let temp2 = "";
// 1
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
temp1 = arr1[i].toString(2);
temp2 = arr2[i].toString(2);
}
// 2
for (let k = 0; k < n; k++) {
if (temp1.length < n) {
temp1 = "0" + temp1;
}
if (temp2.length < n) {
temp2 = "0" + temp2;
}
}
map1.push(temp1);
map2.push(temp2);
}
// console.log(map1, map2);
// 3
for (let i = 0; i < map1.length; i++) {
let tempResult = "";
for (let j = 0; j < n; j++) {
if (map1[i][j] === "1" || map2[i][j] === "1") {
tempResult += "#";
} else if (map1[i][j] === "0" && map2[i][j] === "0") {
tempResult += " ";
}
}
result.push(tempResult);
}
// console.log(map1, map2, result);
return result;
}
// 주어진 맵을 한줄씩 2진법으로 바꿈
// 길이는 n과 같으므로 바꾼값이 n보다 짧으면 맨앞에 0을 추가
// 두 지도에 같은 위치끼리 비교
// 둘중 하나라도 벽이면 결과값에 '#'추가
// 둘 다 공백이면 결과값에 ' ' 추가