코딩테스트/SW Expert Academy
[D3] 1215. [S/W 문제해결 기본] 3일차 - 회문1
셂
2024. 10. 21. 13:52
1215. [S/W 문제해결 기본] 3일차 - 회문1
✏️ 문제 풀이
- 8x8 그리드에서 특정 길이 ( N )의 팰린드롬(앞뒤가 같은 문자열)을 찾는 프로그램
- 파이썬 문자열 뒤집기(슬라이싱 기법) [::-1]
→ start와 end를 지정하지 않으면 문자열의 처음부터 끝까지 슬라이스
→ step을 -1로 설정하면 문자열을 역순으로 가져옴
- 세로: (row = 0) (col = 1) (N = 3)일 경우, grid[0][1], grid[1][1], grid[2][1]의 문자들을 join으로 결합
for tc in range(10):
N = int(input())
grid = [input() for _ in range(8)] # 8줄의 문자열로 이루어진 grid 입력 받음
answer = 0
# 가로 확인
for row in range(8):
for col in range(8 - N + 1):
substring = grid[row][col:col + N]
if substring == substring[::-1]:
answer += 1
# 세로 확인
for col in range(8):
for row in range(8 - N + 1):
substring = ''.join(grid[row+i][col] for i in range(N))
if substring == substring[::-1]:
answer += 1
print(f"#{tc + 1} {answer}")