ํ์ด
๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ๋ฌธ์ ์ด๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ 2๊ฐ์ง ๊ธฐ๋ฅ์ ๊ตฌํํด์ผํ๋ค.
-
์ธ์ ํ๋ ์ฌํ์ ์์น๋ฅผ ์๋ก ๊ตํํ๋ ๊ธฐ๋ฅ
-
ํ ๋๋ ์ด์์ ๊ฐ์ฅ ๊ธด ์ฐ์ ๋ถ๋ถ์ ์ฐพ๋ ๊ธฐ๋ฅ
2๋ฒ ๊ธฐ๋ฅ์ ํจ์๋ก ๊ตฌํํ๊ณ 1๋ฒ ๊ธฐ๋ฅ์ด ๋์๊ฐ ๋๋ง๋ค 2๋ฒ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ์์ผ๋ก ์ฝ๋๋ฅผ ์งฐ๋ค.
1๋ฒ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ์ ์ ์๋ ์ ์ ๊ฐ ์นธ์ ๊ฒ์ฌํ ๊ฒฝ์ฐ ์ฐ์ธก๊ณผ ํ๋จ๋ง ๊ณ ๋ คํ๋ฉด ๋๋ค๋ ๊ฒ์ด๋ค.
์์ค์ฝ๋
import sys
input = sys.stdin.readline
def inspect(c, n):
cnt = 1
for i in range(n):
cnt_row = 1
cnt_col = 1
for j in range(n - 1):
# hotizontal inspection
if c[i][j] == c[i][j + 1]:
cnt_row += 1
else:
cnt = max(cnt, cnt_row)
cnt_row = 1
# vertical inspection
if c[j][i] == c[j + 1][i]:
cnt_col += 1
else:
cnt = max(cnt, cnt_col)
cnt_col = 1
cnt = max(cnt, cnt_row, cnt_col)
return cnt
n = int(input())
c = [list(input().rstrip()) for _ in range(n)]
ans = 0
for i in range(n):
for j in range(n - 1):
# horizontal exchange
if c[i][j] != c[i][j + 1]:
c[i][j], c[i][j + 1] = c[i][j + 1], c[i][j]
ans = max(ans, inspect(c, n))
c[i][j], c[i][j + 1] = c[i][j + 1], c[i][j]
# vertical exchange
if c[j][i] != c[j + 1][i]:
c[j][i], c[j + 1][i] = c[j + 1][i], c[j][i]
ans = max(ans, inspect(c, n))
c[j][i], c[j + 1][i] = c[j + 1][i], c[j][i]
print(ans)