[プログラマー]level 1-秘密地図
1986 ワード
質問-秘密の地図
問題の説明
ニオは秘密の地図を手に持って、プロドが普段私房のお金を隠している場所を教えた.しかし、この秘密地図はデジタル暗号化されており、位置を確認するために解読が必要です.幸いなことに、地図のパスワードを解読する方法が書かれたメモも見つかった.
地図は、エッジ長nの正方形の配列形式で、各セルは「空白」(")または「壁」("#")の2種類で構成されています.
地図全体を2枚の地図で重ねることができます.それぞれ「地図1」と「地図2」と言います.地図1または地図2のいずれかが壁である部分は、地図全体でも壁である.地図1も地図2も空白の部分であり、地図全体においても空白である.
「地図1」と「地図2」はそれぞれ整数配列で暗号化されている.
暗号化された配列は,地図の横線ごとに壁部分を1に符号化し,空白部分を0に符号化したときのバイナリ値の配列である.
ニオがフロドの私房金を手に入れるために、秘密地図のパスワードを解読するのに役立つプログラムを作成しました.
入力フォーマット
地図に入るエッジサイズnと2つの整数配列arr 1とarr 2を入力します.
1 ≦ n ≦ 16
arr 1,arr 2は長さnの整数配列である.
整数配列の各要素xがバイナリ数に変換されたときの長さはn以下である.すなわち、0≦x≦2 n−1を満たす.
出力フォーマット
元の秘密地図を復号し、「#」と出力し、スペースからなる文字列の配列です.
I/O例
パラメータ値
n: 5
arr1 [9, 20, 28, 18, 11]
arr2 [30, 1, 21, 17, 28]
出力[####],####;,####;,####;,#####;,#####]
パラメータ値
n: 6
arr1 [46, 33, 33 ,22, 31, 50]
arr2 [27 ,56, 19, 14, 14, 10]
出力[#####]、[###]、[###]、[####]、[####]、[#####]、[#####]
に答える function solution(n, arr1, arr2) {
let temp = '';
let result = [];
for(let i =0; i<n ; i++){
let nBitBinary1 = toBinary(arr1[i],n);
let nBitBinary2 = toBinary(arr2[i],n);
for(let i =0; i<n ; i++){
nBitBinary1[i] === '1' || nBitBinary2[i] === '1' ? temp += '#' : temp += ' ';
}
result.push(temp);
temp = '';
}
return result;
}
function toBinary(element,n){
let binary = element.toString(2);
binary = '0'.repeat(n-binary.length) + binary;
return binary;
}
function solution(n, arr1, arr2) {
let temp = '';
let result = [];
for(let i =0; i<n ; i++){
let nBitBinary1 = toBinary(arr1[i],n);
let nBitBinary2 = toBinary(arr2[i],n);
for(let i =0; i<n ; i++){
nBitBinary1[i] === '1' || nBitBinary2[i] === '1' ? temp += '#' : temp += ' ';
}
result.push(temp);
temp = '';
}
return result;
}
function toBinary(element,n){
let binary = element.toString(2);
binary = '0'.repeat(n-binary.length) + binary;
return binary;
}
Reference
この問題について([プログラマー]level 1-秘密地図), 我々は、より多くの情報をここで見つけました https://velog.io/@nahyyun/프로그래머스level1-비밀지도-vq21841lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol