https://softeer.ai/practice/6282
from collections import deque
N = int(input())
visited = [[0 for col in range(N)] for row in range(N)]
ground = list()
def bfs(x, y):
queue = deque()
queue.append((x, y))
visited[x][y] = 1
cnt = 1
while(queue):
x, y = queue.popleft()
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if nx < 0 or ny < 0 or nx >= len(ground) or ny >= len(ground[0]):
continue
if ground[nx][ny] == '0':
continue
if ground[nx][ny] == '1' and visited[nx][ny] == 0:
visited[nx][ny] = 1
queue.append((nx, ny))
cnt += 1
return cnt
ground = [list(input()) for _ in range(N)]
result = list()
for i in range(N):
for j in range(N):
if ground[i][j] == '1' and visited[i][j] == 0:
result.append(bfs(i, j))
print(len(result))
for i in range(len(result)):
print(result[i])
'Coding Test' 카테고리의 다른 글
[Algorithm] DP(Dynamic Programming) (1) | 2023.11.23 |
---|---|
[카카오기출] 프로그래머스_튜플_Lv2 (0) | 2023.11.19 |
#1541 (0) | 2021.05.18 |
#2447 별찍기 JAVA (0) | 2021.04.06 |
#10989 수 정렬하기3 (0) | 2021.03.30 |