import sys
input = sys.stdin.readline
answer = 1
num = int(input())
num_list = [list(input()) for _ in range(num)]
def find_max_count() :
global answer
for i in range(num) :
count = 1
for j in range(1,num) :
if num_list[i][j] == num_list[i][j-1] :
count += 1
answer = max(answer, count)
else :
count = 1
for j in range(num) :
count = 1
for i in range(1,num) :
if num_list[i][j] == num_list[i-1][j] :
count += 1
answer = max(answer, count)
else :
count = 1
for i in range(num) :
for j in range(num) :
if i+1 < num :
num_list[i][j], num_list[i+1][j] = num_list[i+1][j], num_list[i][j]
find_max_count()
num_list[i][j], num_list[i+1][j] = num_list[i+1][j], num_list[i][j]
if j+1 < num :
num_list[i][j], num_list[i][j+1] = num_list[i][j+1], num_list[i][j]
find_max_count()
num_list[i][j], num_list[i][j+1] = num_list[i][j+1], num_list[i][j]
print(answer)
완전 탐색을 이용해 해결했다.
첫 지점부터 끝까지 오른쪽 요소와 교환, 아래쪽 요소와 교환을 거치며 한 칸씩 검사한다.
같은 줄에 있는 요소들을 검사하여 최대 값을 구한다.
'프로그램 > 코딩테스트' 카테고리의 다른 글
백준 1449 수리공 항승 (0) | 2022.06.13 |
---|---|
백준 1931 회의실 배정 (0) | 2022.06.13 |
백준 10448 유레카 이론 (0) | 2022.06.13 |
백준 3040 백설 공주와 일곱 난쟁이 (0) | 2022.06.13 |
백준 2075 N번째 큰 수 (0) | 2022.06.13 |
댓글