前提・実現したいこと
(h,w)の二次元配列を宣言して、falseで全て埋め、
入力が
4 5 (h行w列の配列) .*.*. *.... .*... .*..*
の時、*の位置をtrueにしたいです。
以下がそのコードなのですが、代入がうまくいっていません。
house[h_index][w_index]としてるので、1つだけtrueになることを期待しているのですが、複数変わってしまいます。
h行w列の二次元配列houseのh_index行 w_index列目
をtrueにするにはどうすればよいですか?
javascript
1process.stdin.resume(); 2process.stdin.setEncoding("utf8"); 3const lines = []; 4const reader = require("readline").createInterface({ 5 input: process.stdin, 6 output: process.stdout, 7}); 8reader.on("line", (line) => { 9 lines.push(line); 10}); 11 12reader.on("close", () => { 13 // 初期化 14 const [h, w] = lines.shift().split(' ').map(e => Number(e)); 15 let house = new Array(h).fill(new Array(w).fill(false)) 16 17 console.log(house) 18 lines.forEach((line, h_index) => { 19 line.split('').forEach((e, w_index) => { 20 console.log('------------') 21 if(e === '*'){ 22 console.log('変更したよ') 23 house[h_index][w_index] = true 24 } 25 console.log('h = ' + h_index) 26 console.log('w = ' + w_index) 27 console.log(house) 28 }) 29 }); 30});
入力
4 5 2 2 .*.*. *.... .*... .*..*
出力
[ [ false, false, false, false, false ], [ false, false, false, false, false ], [ false, false, false, false, false ], [ false, false, false, false, false ] ] ------------ h = 0 w = 0 [ [ false, false, false, false, false ], [ false, false, false, false, false ], [ false, false, false, false, false ], [ false, false, false, false, false ] ] ------------ 変更したよ h = 0 w = 1 [ [ false, true, false, false, false ], [ false, true, false, false, false ], [ false, true, false, false, false ], [ false, true, false, false, false ] ] ------------ h = 0 w = 2 [ [ false, true, false, false, false ], [ false, true, false, false, false ], [ false, true, false, false, false ], [ false, true, false, false, false ] ] ------------ 変更したよ h = 0 w = 3 [ [ false, true, false, true, false ], [ false, true, false, true, false ], [ false, true, false, true, false ], [ false, true, false, true, false ] ] ------------ h = 0 w = 4 [ [ false, true, false, true, false ], [ false, true, false, true, false ], [ false, true, false, true, false ], [ false, true, false, true, false ] ] ------------ 変更したよ h = 1 w = 0 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 1 w = 1 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 1 w = 2 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 1 w = 3 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 1 w = 4 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 2 w = 0 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ 変更したよ h = 2 w = 1 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 2 w = 2 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 2 w = 3 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 2 w = 4 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 3 w = 0 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ 変更したよ h = 3 w = 1 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 3 w = 2 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ h = 3 w = 3 [ [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ], [ true, true, false, true, false ] ] ------------ 変更したよ h = 3 w = 4 [ [ true, true, false, true, true ], [ true, true, false, true, true ], [ true, true, false, true, true ], [ true, true, false, true, true ] ]
第三者に聞いてしまっていいような種類の問題なのですか?
paizaの回答を教えるつもりはないですが、質問の意図がわかりません
h*wの二次配列をfalseでうめて、新たに指定したhとwの値をtrueに
するだけでいいのでしょうか?
paizaの規約で「問題を公開するな」というのがあったと思うのですが…
代わりの問題を1つ用意するために掛かった費用を請求されることもありえますので、
回答が付く前に削除申請された方が良いかと思います。
https://paiza.jp/guide/kiyaku
第11条(禁止行為)
(3)ブログ・SNS等の各種媒体(インターネット媒体に限られず、不特定多数が閲覧可能なものを全て含む。)上において、当社がpaizaで出題した問題の内容、当該問題に対する解答、解答へのヒント等の示唆およびカンニング等の不正を助長する内容等を掲載する行為。
完全にこれに該当しますね。
paizaのリンクを消しました。
paizaの回答を求めているわけではなく、配列操作で期待した動きをしなかったため、みなさんの知恵を貸していただきたく投稿しています。
警告していただきありがとうございます。
これでおそらくpaizaの規約に問題ないとは思うのですが、これでも問題がありそうなら削除することにします。
回答つけたとおり、躓いていると思われる箇所は特にteratailに
投稿しても問題ないご自身のソースだと思います
new Arrayをfillすると参照箇所が同じになります
yambejpさん
> teratailに投稿しても問題ないご自身のソース
安心しました。ありがとうございます。回答もありがとうございます!
回答1件
あなたの回答
tips
プレビュー