최종 제출 코드
n = int(input())
array = [0 for i in range(n)]
for i in range(n):
array[i] = list(input())
.
(i, j)를 매개변수로 받은 경우 array[i][j]와 array[i][j+1]을 교환하고, 이 경우 같은 색이 연속되는 최대 길이를 구한다.i행과 j열, j+1열이다.# 같은 열내에서 인접한 원소 교환
def change_column(row, col):
tmp = array[row][col]
array[row][col] = array[row][col+1]
array[row][col+1] = tmp
vmax_len = 0
rmax_len = 1
for j in range(n-1):
if array[row][j] == array[row][j+1]:
rmax_len += 1
if rmax_len > vmax_len:
vmax_len = rmax_len
else:
rmax_len = 1
for i in range(col, col+2):
cmax_len = 1
for j in range(n-1):
if array[j][i] == array[j+1][i]:
cmax_len += 1
if cmax_len > vmax_len:
vmax_len = cmax_len
else:
cmax_len = 1
tmp = array[row][col]
array[row][col] = array[row][col+1]
array[row][col+1] = tmp
return vmax_len
.
(i, j)를 매개변수로 받은 경우 array[i][j]와 array[i+1][j]을 교환하고, 이 경우 같은 색이 연속되는 최대 길이를 구한다.i행, i+1행과 j열이다.# 같은 행내에서 인접한 원소 교환
def change_row(row, col):
tmp = array[row][col]
array[row][col] = array[row+1][col]
array[row+1][col] = tmp
vmax_len = 0
cmax_len = 1
for j in range(n-1):
if array[j][col] == array[j+1][col]:
cmax_len += 1
if cmax_len > vmax_len:
vmax_len = cmax_len
else:
cmax_len = 1
for i in range(row,row+2):
rmax_len = 1
for j in range(n-1):
if array[i][j] == array[i][j+1]:
rmax_len += 1
if rmax_len > vmax_len:
vmax_len = rmax_len
else:
rmax_len = 1
tmp = array[row][col]
array[row][col] = array[row+1][col]
array[row+1][col] = tmp
return vmax_len
.
result = 0
for i in range(n-1):
for j in range(n):
result = max(result, change_row(i, j))
for i in range(n):
for j in range(n-1):
result = max(result, change_column(i, j))
print(result)