【白俊】2667:番号のみ
848 ワード
DFS
for i in range(n):
for j in range(n):
each = 0
if dfs(i, j) == True:
cnt += 1
answer.append(each)
この部分はjの外で初期化されているので、3番目からいいですが、2番目の数字は初期化されていません.それ以外は
n = int(input())
graph = []
for i in range(n):
graph.append(list(map(int, input())))
# print(graph)
each = 0
def dfs(x, y):
global each
if x < 0 or y < 0 or y >= n or x >= n:
return False
if graph[x][y] == 1:
graph[x][y] = 0
dfs(x-1, y)
dfs(x+1, y)
dfs(x, y-1)
dfs(x, y+1)
each += 1
return True
return False
cnt = 0
answer = []
for i in range(n):
for j in range(n):
each = 0
if dfs(i, j) == True:
cnt += 1
answer.append(each)
print(cnt)
answer = sorted(answer)
for i in answer:
print(i)
# print(answer)
Reference
この問題について(【白俊】2667:番号のみ), 我々は、より多くの情報をここで見つけました https://velog.io/@jinii/백준-2667-단지번호-붙이기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol