秘密の地図
16114 ワード
説明する function solution(n, arr1, arr2) {
var answer = [];
let b_arr1 = toBinary(arr1, n);
let b_arr2 = toBinary(arr2, n);
for (let i = 0; i < n; i++) {
let line = ""
for (let j = 0; j < n; j++) {
if (b_arr1[i][j] === '0' && b_arr2[i][j] === '0') {
line += " "
} else {
line += "#"
}
}
answer.push(line)
}
return answer;
}
function toBinary(arr, n) {
let b_arr = []
for (let i = 0; i < arr.length; i++) {
if (arr[i].toString(2).length < n) {
let plus_z = n - arr[i].toString(2).length;
let p_z = ""
for (let j = 0; j < plus_z; j++) {
p_z += "0"
}
b_arr[i] = p_z + arr[i].toString(2);
} else {
b_arr[i] = arr[i].toString(2)
}
}
return b_arr;
}
とても長いです.
他人解答(gyim 1345)
人の解答を見たらやっぱり1~2行で終わる人がいました
モジュール形式で作られている人もいて、とてもきれいに見えます.
まずきれいなモジュールフォーマットを作成したほうがいいと思います.だから、まず見てから、コードを修正するのに時間がかかります.
私が学びたい解答
const solution = (n, arr1, arr2) => {
const binaryStringArray1 = decimalToBinary(arr1, n);
const binaryStringArray2 = decimalToBinary(arr2, n);
const map1 = binaryStringArray1.map(splitToNumbers)
const map2 = binaryStringArray2.map(splitToNumbers)
const combinedMap = sumArray(map1, map2);
return numberToSharpAndEmpty(combinedMap).map(v => v.join(''));
}
const numberToSharpAndEmpty = (arr) => {
return arr.map((v1, i1) => {
return v1.map((v2, i2) => {
return (v2 === 0) ? ' ' : '#';
}
)})
console.log(x)
};
const sumArray = (arr1, arr2) => arr1.map((v1, i1) => v1.map((v2, i2) => v2 + arr2[i1][i2]));
const decimalToBinary = (array, n) => array.map(item => item.toString(2).padStart(n, '0'));
const splitToNumbers = (str) => str.split('').map(e => Number(e));
どうしたんですか。
function solution(n, arr1, arr2) {
var answer = [];
let b_arr1 = toBinary(arr1, n);
let b_arr2 = toBinary(arr2, n);
for (let i = 0; i < n; i++) {
let line = ""
for (let j = 0; j < n; j++) {
if (b_arr1[i][j] === '0' && b_arr2[i][j] === '0') {
line += " "
} else {
line += "#"
}
}
answer.push(line)
}
return answer;
}
function toBinary(arr, n) {
let b_arr = []
for (let i = 0; i < arr.length; i++) {
if (arr[i].toString(2).length < n) {
let plus_z = n - arr[i].toString(2).length;
let p_z = ""
for (let j = 0; j < plus_z; j++) {
p_z += "0"
}
b_arr[i] = p_z + arr[i].toString(2);
} else {
b_arr[i] = arr[i].toString(2)
}
}
return b_arr;
}
人の解答を見たらやっぱり1~2行で終わる人がいました
モジュール形式で作られている人もいて、とてもきれいに見えます.
まずきれいなモジュールフォーマットを作成したほうがいいと思います.だから、まず見てから、コードを修正するのに時間がかかります.
私が学びたい解答
const solution = (n, arr1, arr2) => {
const binaryStringArray1 = decimalToBinary(arr1, n);
const binaryStringArray2 = decimalToBinary(arr2, n);
const map1 = binaryStringArray1.map(splitToNumbers)
const map2 = binaryStringArray2.map(splitToNumbers)
const combinedMap = sumArray(map1, map2);
return numberToSharpAndEmpty(combinedMap).map(v => v.join(''));
}
const numberToSharpAndEmpty = (arr) => {
return arr.map((v1, i1) => {
return v1.map((v2, i2) => {
return (v2 === 0) ? ' ' : '#';
}
)})
console.log(x)
};
const sumArray = (arr1, arr2) => arr1.map((v1, i1) => v1.map((v2, i2) => v2 + arr2[i1][i2]));
const decimalToBinary = (array, n) => array.map(item => item.toString(2).padStart(n, '0'));
const splitToNumbers = (str) => str.split('').map(e => Number(e));
どうしたんですか。
Reference
この問題について(秘密の地図), 我々は、より多くの情報をここで見つけました https://velog.io/@ljh95/비밀지도テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol