深さ優先探索(もどき)でエラーが出る
AtCoderのATC001のA問題で深さ優先探索をしようと思ったのですが、数問だけREが出てしまいました。
ほとんどACだからこそ、原因が何なのかわかりません。
もちろん、他の方の回答を見るとstackやqueを用いていらしたので、それが正解なのはわかっているのですが、なぜこのコードだとエラーが出るのか知っておきたいです。
該当のソースコード
import sys def dfs(px,py): if px < 0 or py < 0 or px > w-1 or py > h-1: return False if c[py][px] == '#': return False if c[py][px] == 'g': return True c[py][px] = '#' if dfs(px-1,py): return True if dfs(px,py-1): return True if dfs(px+1,py): return True if dfs(px,py+1): return True return False h,w = map(int,input().split()) c = [] for i in range(h): s = input() x = s.find('s') if x != -1: start = [x,i] c.append(list(s)) sx = int(start[0]) sy = int(start[1]) if dfs(sx,sy): print('Yes') else: print('No')
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/03 11:20