여름의 서재

[SWEA] 1216_회문2 본문

알고리즘/SWEA

[SWEA] 1216_회문2

엉아_ 2021. 8. 17. 17:34
728x90

📕 문제

주어진 100x100 평면 글자판에서 가로, 세로를 모두 보아 가장 긴 회문의 길이를 구하는 문제

 

def long_palindrome(N, M, matrix):
    for i in range(N):
        for j in range(0, N-M+1):
            if matrix[i][j] == matrix[i][j+M-1]:
                for k in range(1, M):
                    if matrix[i][j+k] != matrix[i][j+M-1-k]:
                        break
                else: return True


    for i in range(N):
        for j in range(0, N-M+1):
            if matrix[j][i] == matrix[j+M-1][i]:
                for k in range(1, M):
                    if matrix[j+k][i] != matrix[j+M-1-k][i]:
                        break
                else: return True
    return False

for tc in range(10):
    T = int(input())
    matrix = [list(input()) for _ in range(100)]
    for M in range(100, -1, -1):
        if long_palindrome(100, M, matrix):
            break
    print('#{0} {1}'.format(tc+1, M))

'알고리즘 > SWEA' 카테고리의 다른 글

[SWEA] 4869_종이붙이기 (DP 이용)  (0) 2021.08.18
[SWEA] 2005_파스칼의 삼각형  (0) 2021.08.18
[SWEA] 3143_가장 빠른 문자열 타이핑  (0) 2021.08.17
[SWEA] 5432_쇠막대기 자르기  (0) 2021.08.17
[SWEA] 4861_회문  (0) 2021.08.17
Comments