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)))
'알고리즘 문제 풀기 > SWEA' 카테고리의 다른 글
[SWEA 1952] 수영장 - 파이썬 (0) | 2021.03.14 |
---|---|
[SWEA 1949] 등산로 - DFS, 파이썬 (0) | 2021.03.14 |
[SWEA 1223] 계산기2 - 스택을 이용한 후위표기식 (0) | 2021.02.25 |
SWEA 4861. 회문 - 파이썬 (0) | 2021.02.19 |
SWEA 4836. 색칠하기 2차원 배열(파이썬) (0) | 2021.02.16 |