前提
Atcoderの以下の問題にて、コードを書いたのですが、期待する出力がなされませんでした。コードを見ていただき、問題点を教えていただきたいです。
実現したいこと
以下の問題において、期待する出力を出すようなコードを書くこと。
https://atcoder.jp/contests/past202010-open/tasks/past202010_c
発生している問題・エラーメッセージ
入力に対する出力が異なる。
該当のソースコード
python
1n,m = list(map(int,input().split())) 2s=[input() for i in range(n)] 3 4#8方向 5d_x = [1, 0, -1, 0, 1, -1, -1, 1] 6d_y = [0, 1, 0, -1, 1, 1, -1, -1] 7 8#出力するマス目 9ans=[[0]*m]*n 10 11#行 12for i in range(n): 13 #列 14 for j in range(m): 15 cnt = 0 16 #8方向について調べる。 17 for k in range(8): 18 #8方向についてそれぞれ、マス外でないか調べる。 19 search_i = i + d_y[k] #y方向について 20 search_j = j + d_x[k] #x方向について 21 #空きマスの周囲を調べる際、調べる場所によっては範囲外エラーになることが予想されます。 22 #そのため、元々用意されているマス目に収まる範囲、かつ爆弾マスだったらcnt+1されるように条件文で書いています。 23 if 0 <= search_i < n and 0 <= search_j < m and s[search_i][search_j] == "#": 24 cnt += 1 25 #もし自分自身が「#」」の場合、プラス1 26 if s[i][j]=="#": 27 cnt+=1 28 #答え。 29 ans[i][j] = cnt 30 31for i in range(n): 32 for j in range(m): 33 #「end=""」によって、一行分、改行せずに出力する。 34 print(ans[i][j], end = "") 35 #一行分出力し終えたら、改行を行う。 36 print()
試したこと
実際にコードを書きました。
補足情報(FW/ツールのバージョンなど)
なし
デバッグした内容を質問に追記していただけませんか。
それともデバッグ作業の依頼でしょうか。
異なる、とはどういうふうに異なるんでしょうか。
実際の出力を提示しよう
例えば、入力が以下の通り。
3 4
#.##
..#.
#...
この場合、期待する出力は以下の通り。
1333
2433
1211
しかし、記述したコードでの出力は、以下の通りとなりました。
1211
1211
1211
入出力例は質問に追記してください。
回答1件
あなたの回答
tips
プレビュー