Post
1216. 회문2 (SWEA) | Gihun Son

1216. 회문2 (SWEA)

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

출처:

SW Expert Academy

나의 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
for test_case in range(1, 11):
    T = int(input())
    matrix=[]
    for _ in range(100):
        matrix.append(list(input()))
    max_len=101
    done=False
    while max_len>1 and not done:
        max_len-=1
        for i in range(100):
            for j in range(101-max_len):
                for k in range(max_len//2):
                    if matrix[i][j+k]!=matrix[i][j+max_len-1-k]:
                        break
                else:
                    done=True
                    break
                for k in range(max_len//2):
                    if matrix[j+k][i]!=matrix[j+max_len-1-k][i]:
                        break
                else:
                    done=True
                    break
            if done:
                break
    print(f'#{T} {max_len}')
  • 회문 1과 마찬가지로 완전탐색을 해서 구했다.
  • 연산량을 최대한 줄이기 위해, 최대 길이 100부터 시작하여, 만족하는 문자열이 하나라도 있을 때, 즉시 중단하도록 코드를 구성했다.
This post is licensed under CC BY 4.0 by the author.