-
코드
n = int(input()) tree = [list(0 for _ in range(n)) for _ in range(n)] for i in range(n): li = list(input()) for j in range(n): if li[j] == '1': tree[i][j] = 1 dfs_answer = [] dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] def dfs(tree, cnt, x, y): tree[x][y] = 0 for i in range(4): n_x = x + dx[i] n_y = y + dy[i] if 0 <= n_x < n and 0 <= n_y < n: if tree[n_x][n_y] == 1: cnt = dfs(tree, cnt + 1, n_x, n_y) return cnt for i in range(n): for j in range(n): if tree[i][j] == 1: dfs_answer.append(dfs(tree, 1, i, j)) print(len(dfs_answer)) for i in sorted(dfs_answer): print(i)
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2178번 미로 탐색 (파이썬) (0) 2022.01.05 [백준] 1012번 유기농 배추 (파이썬) (0) 2022.01.04 [백준] 2606번 바이러스 (파이썬) (0) 2022.01.04 [백준] 1260번 DFS와 BFS (파이썬) (0) 2022.01.04 [백준] 7579번 앱 (파이썬) (0) 2022.01.04