1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| from collections import deque
def solution(land):
answer = []
n, m = len(land[0]), len(land)
directions = {'up': (0,-1), 'down':(0,1), 'right':(1,0), 'left':(-1,0)}
for i in range(n):
temp_answer = 0
visited = [[False for i in range(n)] for j in range(m)]
queue = deque()
for j in range(m):
# 초기값 설정
if land[j][i] == 1 and not visited[j][i]:
visited[j][i] = True
temp_answer +=1
queue.append((i,j))
# bfs
while queue:
x,y = queue.popleft()
for key, value in directions.items():
dx, dy = value
if 0 <= x+dx < n and 0 <= y+dy < m and land[y+dy][x+dx] == 1 and not visited[y+dy][x+dx]:
temp_answer +=1
visited[y+dy][x+dx] = True
queue.append((x+dx, y+dy))
answer.append(temp_answer)
return max(answer)
|