質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1087閲覧

AtCoder Regular Contest B問題について質問です。

Dango_desu

総合スコア3

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/08 01:40

編集2021/12/08 01:42

前提・実現したいこと

AtCoder Regular Contest131のB問題を解説と同じやり方でコードを組み実行することはできたのですが、提出すると不正解になってしまいます。
問題URL

#コード

python3

1 2H, W = map(int, input().split()) 3board = [[int(0) for i in range(W)] for j in range(H)] 4 5#上下左右動かす時用 6dx = [0, 1, 0, -1] 7dy = [-1, 0, 1, 0] 8 9#色がついてないときは0としてboardリストに格納 10for i in range(H): 11 a = input() 12 for j in range(W): 13 if a[j] == ".": 14 pass 15 else: 16 board[i][j] = int(a[j]) 17 18for i in range(H): 19 for j in range(W): 20 #色1~5が周りにあるか確認 21 check = [False, False, False, False, False] 22 for k in range(4): 23 x = dx[k] + j 24 y = dy[k] + i 25 if (0 <= x <= (W-1) and 0 <= y <= (H-1)): 26 if board[y][x] == 0: 27 pass 28 else: 29 check[board[y][x]-1] = True 30 for l in range(5): 31 if check[l] == False: 32 board[i][j] = (l+1) 33 break 34 35for i in range(H): 36 for j in range(W): 37 print(board[i][j], end="") 38 print("") 39

試したこと

公式解説と同じ解説方法を試しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

最初から色が塗られてる場所を塗り替えてませんか?

投稿2021/12/08 02:45

yudedako67

総合スコア2047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Dango_desu

2021/12/08 03:53

気づきませんでした、ありがとうございます。 塗り替えないようにしたところ正解でした。
guest

0

python

1 for l in range(5): 2 if check[l] == False: 3 board[i][j] = (l+1) 4 break

の部分で、「まだ塗られていないマスを色 1, 2, 3, 4, 5 のいずれかで塗る方法」の条件が抜けています。

以下、私のコピペミスでした。忘れてください。

~~実行してみると、以下のエラーメッセージが出ました。
~~

python

1NameError: name 'dx' is not defined

AtCoderに出す前に、自分のPython環境で動作確認をしましょう。

投稿2021/12/08 02:15

編集2021/12/08 02:52
ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Dango_desu

2021/12/08 03:53

ありがとうございます。その部分でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問