[BOJ/C++/1987] 알파벳
Mongsanga
·2022. 11. 8. 19:15
#include <bits/stdc++.h>
using namespace std;
int n,m,chk[21][21],dx[4]={1,0,-1,0},dy[4]={0,1,0,-1},alphabet[27],MAX;
char board[21][21];
void solve(int x, int y, int len){
MAX=max(len,MAX);
for(int i=0;i<4;i++){
int X=x+dx[i],Y=y+dy[i];
if(X<0 || X>=n || Y<0 || Y>=m) continue;
if(alphabet[board[X][Y]-'A'] || chk[X][Y]) continue;
alphabet[board[X][Y]-'A']++,chk[X][Y]++;
solve(X,Y,len+1);
alphabet[board[X][Y]-'A']--,chk[X][Y]--;
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++) scanf("%s",board[i]);
chk[0][0]=1,alphabet[board[0][0]-'A']++;
solve(0,0,1);
printf("%d",MAX);
return 0;
}