バックアップ2667-DFSソリューション(Python)
1209 ワード
プール(DFS使用)
# DFS
import sys
sys.setrecursionlimit(10000)
# 단지 만들기
N = int(input())
matrix = [list(input()) for _ in range(N)]
for i in range(N):
for j in range(N):
matrix[i][j] = int(matrix[i][j])
# 다른 입력 방법! 찾다가 알게 됨!
# read = lambda : sys.stdin.readline().strip()
# matrix = [list(map(int, list(read()))) for _ in range(N)]
def DFS(matrix, cnt, x, y):
matrix[x][y] = 0 # visit 해줬으니 다시 안 가게 0으로 만들어주기
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if nx < 0 or nx >= N or ny < 0 or ny >= N:
continue
if matrix[nx][ny] == 1:
cnt = DFS(matrix, cnt + 1, nx, ny)
return cnt
ans = []
for i in range(N):
for j in range(N):
if matrix[i][j] == 1:
ans.append(DFS(matrix, 1, i, j))
print(len(ans))
for i in sorted(ans):
print(i)
質問元:白俊2667号です。Reference
この問題について(バックアップ2667-DFSソリューション(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@whiteamericano/백준-2667번-DFS-solution-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol