알고리즘/백준
[백준] 1987 - 알파벳 (파이썬)
소갱
2021. 9. 22. 14:17
import sys
sys.setrecursionlimit(10**5)
n, m = map(int,sys.stdin.readline().split())
array = []
for _ in range(n):
array.append(list(sys.stdin.readline().rstrip()))
check = [False for _ in range(27)]
visit = [[False for _ in range(m)] for _ in range(n)]
dx = [-1,0,1,0]
dy = [0,1,0,-1]
mx = -1
def DFS(x,y,v):
global mx
visit[x][y] = True
check[ord(array[x][y])-65] = True
mx = max(mx,v)
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0<=nx<n and 0<=ny<m:
if visit[nx][ny] == False:
if check[ord(array[nx][ny])-65] == False:
DFS(nx,ny,v+1)
check[ord(array[nx][ny])-65] = False
visit[nx][ny] = False
DFS(0,0,1)
print(mx)