μκ·Όμ΄λ μ΄λ Έμ μ μ "λ΄λ³΄λ (Bomboni)" κ²μμ μ¦κ²¨νλ€.
κ°μ₯ μ²μμ N×Nν¬κΈ°μ μ¬νμ μ±μ λλλ€. μ¬νμ μμ λͺ¨λ κ°μ§ μμ μλ μλ€. μκ·Όμ΄λ μ¬νμ μμ΄ λ€λ₯Έ μΈμ ν λ μΉΈμ κ³ λ₯Έλ€. κ·Έ λ€μ κ³ λ₯Έ μΉΈμ λ€μ΄μλ μ¬νμ μλ‘ κ΅ννλ€. μ΄μ , λͺ¨λ κ°μ μμΌλ‘ μ΄λ£¨μ΄μ Έ μλ κ°μ₯ κΈ΄ μ°μ λΆλΆ(ν λλ μ΄)μ κ³ λ₯Έ λ€μ κ·Έ μ¬νμ λͺ¨λ λ¨Ήλλ€.
μ¬νμ΄ μ±μμ§ μνκ° μ£Όμ΄μ‘μ λ, μκ·Όμ΄κ° λ¨Ήμ μ μλ μ¬νμ μ΅λ κ°μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ 보λμ ν¬κΈ° Nμ΄ μ£Όμ΄μ§λ€. (3 ≤ N ≤ 50)
λ€μ Nκ° μ€μλ 보λμ μ±μμ Έ μλ μ¬νμ μμμ΄ μ£Όμ΄μ§λ€. λΉ¨κ°μμ C, νλμμ P, μ΄λ‘μμ Z, λ Έλμμ Yλ‘ μ£Όμ΄μ§λ€.
μ¬νμ μμ΄ λ€λ₯Έ μΈμ ν λ μΉΈμ΄ μ‘΄μ¬νλ μ λ ₯λ§ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ μκ·Όμ΄κ° λ¨Ήμ μ μλ μ¬νμ μ΅λ κ°μλ₯Ό μΆλ ₯νλ€.
π§ νμ΄
μ΄ λ¬Έμ λ μμ νμ λ¬Έμ μ΄λ€.
μΈμ ν λ€λ₯Έ λ μΉΈμ κ³ λ₯Έ ν μλ‘ κ΅ννλ 쑰건μ νμ΄μ¬μ swapμ μ¬μ©ν΄μ ν΄κ²°ν μ μλ€.
candy_count() ν¨μ
μ²μμλ rowμ colμ cnt, maxλ₯Ό λͺ¨λ λλ μ κ³μ°νλλ° μκ°μ΄κ³Όκ° λμ ν©μ³μ ꡬνλ λ°©λ²μΌλ‘ λ°©ν₯μ νμλ€.
- rowμ colμ κΈ°μ€μ λλ λ°λ³΅λ¬Έ μμ 쑰건문μ λ€λ₯΄κ² μ€μ νκ³ μμ΄ κ°λ€λ©΄ cntλ₯Ό 1μ© μ¦κ°μμΌ°λ€.
- max_cntκ°μ κ΅¬ν΄ λ°ννλλ‘ νμλ€.
- Nκ³Ό 보λ μμ λ¬Έμλ€μ μ λ ₯λ°κ³ 쑰건μ λ°μ Έ swapμ νλ€.
- λͺ¨λ κ°μ μμΌλ‘ μ΄λ£¨μ΄μ Έ μλ κ°μ₯ κΈ΄ μ°μ λΆλΆμ κ³ λ₯Έ ν λ€μ λλλ¦°λ€.
- λλ릴 λμλ swapμ μ¬μ©νλ€.
def candy_count() :
cnt, max_cnt = 1, 1
res = 0
for i in range(N) :
cnt = 1
#ν κΈ°μ€ νμ
for j in range(1, N) :
if board[i][j] == board[i][j-1] : #μΈμ ν 보λμ μμ΄ κ°λ€λ©΄
cnt += 1
else :
cnt = 1
max_cnt = max(max_cnt, cnt)
#μ΄ κΈ°μ€ νμ
for j in range(1, N) :
if board[j][i] == board[j-1][i] : #μΈμ ν 보λμ μμ΄ κ°λ€λ©΄
cnt += 1
else :
cnt = 1
max_cnt = max(max_cnt, cnt)
res = max(max_cnt, cnt)
return res
N = int(input())
board = [list(input()) for _ in range(N)]
res = 1
for i in range(N) :
for j in range(N-1) :
if j+1 < N and board[i][j] != board[i][j+1] :
board[i][j], board[i][j+1] = board[i][j+1], board[i][j]
res = max(res, candy_count())
board[i][j], board[i][j+1] = board[i][j+1], board[i][j]
if i+1 < N and board[i][j] != board[i+1][j] :
board[i][j], board[i+1][j] = board[i+1][j], board[i][j]
res = max(res, candy_count())
board[i][j], board[i+1][j] = board[i+1][j], board[i][j]
print(res)