알고리즘 문제 풀기/SWEA
SWEA 1216. 회문 2 - 파이썬
hibscus
2021. 3. 6. 19:50
SWEA 1216. 회문 2
def find_palindrome(N, arr):
ans = ''
for n in range(100): # 돌아가는 갯수 늘리기
for s in range(n+1): # 탐색 위치 바꾸기
for r in range(N): # 한줄씩 바꾸기
flag = True
M = N - n
#가로
for idx1 in range(M // 2): # 앞뒤 비교하는것
start = s + idx1
end = s + M - 1 - idx1
if arr[r][start] != arr[r][end]:
flag = False
break
if flag:
return len(arr[r][s:s + M])
#세로
flag = True
for idx2 in range(M // 2): # 앞뒤 비교하는것
start = s + idx2
end = s + M - 1 - idx2
if arr[start][r] != arr[end][r]:
flag = False
break
if flag:
for i in range(M):
ans += arr[s+i][r]
return len(ans)
for _ in range(10):
tc = int(input())
arr = []
N = 100
for i in range(N):
arr.append(list(input()))
print('#{} {}'.format(tc, find_palindrome(N, arr)))