풀이 생략
더보기
#include <iostream>
using namespace std;
int arr[21][21];
int ch[21][21];
int n, m;
int chc[26];
int mx = -2100000000;
void r(int x, int y, int cnt) {
if (x < 1 || x > n || y < 1 || y > m) return;
if (chc[arr[x][y]] == 1 || ch[x][y] == 1) return;
chc[arr[x][y]] = 1;
ch[x][y] = 1;
r(x + 1, y, cnt + 1);
r(x, y + 1, cnt + 1);
r(x - 1, y, cnt + 1);
r(x, y - 1, cnt + 1);
chc[arr[x][y]] = 0;
ch[x][y] = 0;
mx = cnt > mx ? cnt : mx;
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
char a;
cin >> a;
arr[i][j] = a - 65;
}
}
r(1, 1, 1);
cout << mx;
return 0;
}
'Algorithm > Algorithm 문제 풀이' 카테고리의 다른 글
[BAE/<JOON> 문제풀이] 10422. 괄호 (0) | 2021.07.02 |
---|---|
[BAE/<JOON> 문제풀이] 1461. 도서관 (0) | 2021.07.01 |
[BAE/<JOON> 문제풀이] 1509. 팰린드롬 분할 (0) | 2021.04.17 |
[BAE/<JOON> 문제풀이] 20040. 사이클 게임 (0) | 2021.04.17 |
[BAE/<JOON> 문제풀이] 1647. 도시 분할 계획 (0) | 2021.04.17 |