모든 장소를 방문해서 최단 거리를 갱신.
브루트스포스!!!
def BFS(x, y):
global ans
queue = deque()
queue.append((x, y))
visit[x][y] = 0
while queue:
x, y = queue.popleft()
for dx, dy in di:
nx, ny = dx + x, dy + y
if nx < 0 or ny < 0 or nx >= N or ny >= M: continue
if visit[nx][ny] != -1: continue
if mapping[nx][ny] != 'L': continue
visit[nx][ny] = visit[x][y] + 1
queue.append((nx, ny))
ans = max(ans, visit[nx][ny])
N, M = map(int, input().split())
mapping = [input() for _ in range(N)]
di = [(1,0), (-1,0), (0,1), (0,-1)]
ans = 0
for i in range(N):
for j in range(M):
if mapping[i][j] == 'L':
visit = [[-1] * (M) for _ in range(N)]
BFS(i, j)
print(ans)