1216. [S/W 문제해결 기본] 3일차 - 회문2
✏️ 문제 풀이
- 100x100 크기의 격자에서 가로와 세로로 가능한 모든 회문을 확인하여 가장 긴 회문 찾는 프로그램
- 회문의 길이 length를 2부터 100까지 반복
- substring은 start 인덱스부터 length 길이만큼의 부분 문자열
for tc in range(10):
num = int(input())
grid = [input().strip() for _ in range(100)]
max_len = 1 # 최소 회문 길이 1
# 가로 방향 회문 확인
for row in grid:
for length in range(2, 101): # 길이가 2부터 100까지
for start in range(100 - length + 1):
substring = row[start:start + length]
if substring == substring[::-1]:
max_len = max(max_len, length)
# 세로 방향 회문 확인
for col in range(100):
for length in range(2, 101): # 길이가 2부터 100까지
for start in range(100 - length + 1):
substring = ''.join(grid[start + z][col] for z in range(length))
if substring == substring[::-1]:
max_len = max(max_len, length)
print(f"#{num} {max_len}")
'코딩테스트 > SW Expert Academy' 카테고리의 다른 글
[D3] 2805. 농작물 수확하기 (0) | 2024.10.28 |
---|---|
[D3] 1221. [S/W 문제해결 기본] 5일차 - GNS (0) | 2024.10.23 |
[D3] 1215. [S/W 문제해결 기본] 3일차 - 회문1 (0) | 2024.10.21 |
[D3] 1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (0) | 2024.10.21 |
[D3] 1220. [S/W 문제해결 기본] 5일차 - Magnetic (0) | 2024.10.18 |