[PS]秘密地図(LV 1)
プログラマレベル1
秘密の地図
ニオは秘密の地図を手に持って、プロドが普段私房のお金を隠している場所を教えた.しかし、この秘密地図はデジタル暗号化されており、位置を確認するために解読が必要です.幸いなことに、地図のパスワードを解読する方法が書かれたメモも見つかった.
"공백"(" ")
または"벽"("#")
の2つのタイプからなるエッジ長nの正方形配列形態である.벽
部分を1
部分に符号化し、공백
部分を0
に符号化したときに得られるバイナリ数に対応する値の配列である.n
≦ 16 整数配列の各要素
x
が2進数に変換されたときの長さはn
以下である.すなわち0⊥⊥⊥⊥⊥2 n−1を満たす.に答える
function solution(n, arr1, arr2) {
// 답을 담을 배열선언
let s_map = [];
// 들어온 각 두배열을 비트 or 연산을한다
arr1.forEach((e, i) => {
s_map.push(e | arr2[i]);
});
// 비트연산이 끝난 배열을 map 메소드를통해 연산시작
s_map = s_map.map((e) => {
// 이진수형태의 String으로 변환
e = e.toString(2);
// 만약 n의 길이보다 짧다면 n의길이만큼 앞을 0으로 채워준다
if (e.length !== n) {
e = e.padStart(n, "0");
}
// 최종적으로 변환된 String형태를 배열로 분할해 새로운배열로 반환해준다
e = e.split("").map((ele) => {
// 0이면 공백
if (ele === "0") {
return " ";
} else {
// 1이면 벽
return "#";
}
});
// 합쳐준다
e = e.join("");
// 최종적으로 변환이 끝난 이진수를 반환해준다
return e;
});
// 정답 반환
return s_map;
}
の最後の部分
ビット演算と進数変換法で簡単に解決できる問題
x
あるので、もっと簡単に解けます.Reference
この問題について([PS]秘密地図(LV 1)), 我々は、より多くの情報をここで見つけました https://velog.io/@sjy0917/비밀지도テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol