설명 : 비밀지도
간단 설명 : 프로도가 비상금을 숨겨놓는 비밀지도를 해석 하기 위해서는 암호를 해석해야 한다.
매개 변수 | n | arr1 | arr2 | 출력 |
---|---|---|---|---|
1 | 5 | [9, 20, 28, 18, 11] | [30, 1, 21, 17, 28] | ["#####","# # #", "### #", "# ##", "#####"] |
2 | 6 | [46, 33, 33 ,22, 31, 50] | [27 ,56, 19, 14, 14, 10] | ["######", "### #", "## ##", " #### ", " #####", "### # "] |
function solution(n, arr1, arr2) {
let temp = [];
let resultString = "";
let result = [];
for (let i = 0; i < arr1.length; i++) {
temp.push(arr1[i].toString(2));
temp.push(arr2[i].toString(2));
}
for (let i = 0; i < temp.length; i++) {
if (temp[i].length !== n) {
for (let j = 0; j < temp[i].length; j++) {
temp[i] = "0" + temp[i];
if (temp[i].length === n) {
break;
}
}
}
}
for (let i = 0; i < temp.length; i += 2) {
for (let j = 0; j < temp[i].length; j++) {
if (temp[i][j] === temp[i + 1][j]) {
if (temp[i][j] === "1") {
resultString += "#";
} else {
resultString += " ";
}
} else {
resultString += "#";
}
}
result.push(resultString);
resultString = "";
}
return result;
}
function solution(n, arr1, arr2) {
return arr1.map((v, i) => addZero(n, (v | arr2[i]).toString(2)).replace(/1|0/g, a => +a ? '#' : ' '));
}
const addZero = (n, s) => {
return '0'.repeat(n - s.length) + s;
}
이건 뭐 너무나 극명한 실력차이다. 그래도 점점 나아지고 있으니 더욱 분발하자!