package Baekjoon;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Number3085 {
static int N;
static char[][] arr;
static int max_value = 0;
public static void check(char[][] arr) { //첫번째열부터 같은 열까지 서로 값이 같은지 같지 않은지를 확인
for(int i = 0; i<N; i++) {
int count =1;
for(int j =0; j<N-1; j++) {
if(arr[i][j] == arr[i][j + 1]) {
count++;
} else {
count = 1;
}
max_value = Math.max(max_value, count);
}
}
for(int i =0;i<N; i++) { //첫번째행부터 같은 행까지 서로 값이 같은지 같지 않은지를 확인
int count = 1;
for(int j=0;j<N-1; j++) {
if(arr[j][i] == arr[j+1][i]) {
count++;
} else {
count = 1;
}
max_value = Math.max(max_value, count);
}
}
}
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(bf.readLine()); //행렬의 길이
arr = new char[N][N];
for(int i =0;i<N;i++) {
String line = bf.readLine(); //다음줄을 받아서
for(int j=0;j<N;j++) {
arr[i][j] = line.charAt(j); //문자열을 문자1개로 나누어서 배열에 저장
}
}
for(int i =0; i<N;i++) {
for(int j =0;j<N-1;j++) {
char temp = arr[i][j];
arr[i][j] = arr[i][j + 1]; // 오른쪽에 있는 열과 자신의 열을 바꿈
arr[i][j + 1] = temp;
check(arr);
temp = arr[i][j];
arr[i][j] = arr[i][j + 1];
arr[i][j + 1] = temp;
}
}
for(int i=0;i<N; i++) {
for(int j=0;j<N-1;j++) { // 위에 있는 행과 자신의 행을 바꿈
char temp = arr[j][i];
arr[j][i] = arr[j+1][i];
arr[j + 1][i] = temp;
check(arr);
temp = arr[j][i];
arr[j][i] = arr[j+1][i];
arr[j+1][i] = temp;
}
}
System.out.println(max_value);
}
}
JAVA