💡문제접근
- 완전탐색 문제였다. 인접한 행끼리 서로 교환하여 확인하고 인접한 열끼리 서로 교환하여 확인해서 가장 긴 연속 부분을 골라서 최대 몇 개의 사탕을 먹을 수 있는지 구하는 문제였는데 계속 인덱스에러를 범하면서 여러 번 틀렸지만 코드를 수정하면서 어디가 문제인지 파악하여 해결할 수 있었다.
💡코드(메모리 : 30616KB, 시간 : 3224ms)
N = int(input())
board = []
max_count = 0
for _ in range(N):
board.append(list(input()))
def width_search():
global max_count
for i in range(N):
width_cnt = 1
for j in range(N-1):
if board[i][j] == board[i][j+1]:
width_cnt += 1
max_count = max(max_count, width_cnt)
else:
width_cnt = 1
def height_search():
global max_count
for i in range(N):
height_cnt = 1
for j in range(N-1):
if board[j][i] == board[j+1][i]:
height_cnt += 1
max_count = max(max_count, height_cnt)
else:
height_cnt = 1
for i in range(N):
width_cnt = 1
for j in range(N-1):
board[i][j], board[i][j+1] = board[i][j+1], board[i][j]
width_search()
height_search()
board[i][j+1], board[i][j] = board[i][j], board[i][j+1]
board[j][i], board[j+1][i] = board[j+1][i], board[j][i]
width_search()
height_search()
board[j+1][i], board[j][i] = board[j][i], board[j+1][i]
print(max_count)
💡소요시간 : 49m