문제링크 : https://www.acmicpc.net/problem/3085
char arr[51][51];
int n;
int result;
int check()
{
char c;
for (int i = 0; i < n; i++)
{
int cnt = 1;
for (int j = 0; j < n - 1; j++)
{
if (arr[i][j] == arr[i][j + 1]) //양옆이 같으면 증가
{
cnt++;
}
else
{
result = max(result, cnt); //최댓값 갱신
cnt = 1; //다를 경우 다시 카운트
}
result = max(result, cnt); //마무리 갱신
}
}
for (int j = 0; j < n; j++)
{
int cnt = 1;
for (int i = 0; i < n - 1; i++)
{
if (arr[i][j] == arr[i + 1][j]) //위아래가 같으면 증가
{
cnt++;
}
else
{
result = max(result, cnt);
cnt = 1;
}
result = max(result, cnt);
}
}
return result;
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cin >> arr[i][j];
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - 1; j++)
{
swap(arr[i][j], arr[i][j + 1]); //인접한 두 칸 고르기
check(); //가장 긴 연속 부분 확인
swap(arr[i][j], arr[i][j + 1]); //확인 후 배열 원상복귀
}
}
for (int j = 0; j < n; j++)
{
for (int i = 0; i < n - 1; i++)
{
swap(arr[i][j], arr[i + 1][j]);
check();
swap(arr[i][j], arr[i + 1][j]);
}
}
cout << result;
return 0;
}
'백준 > 실버' 카테고리의 다른 글
[백준 9934번] 완전 이진 트리 (C++) (0) | 2023.02.07 |
---|---|
[백준 10655번] 마라톤 1 (C++) (0) | 2023.02.06 |
[백준 2504번] 괄호의 값 (C++) (0) | 2023.02.06 |
[백준 11725번] 트리의 부모 찾기 (C++) (0) | 2023.02.06 |
[백준 2644번] 촌수계산 (C++) (0) | 2023.02.06 |