import sys
sys.stdin = open("input.txt", "r")
n = int(input())
for i in range(n):
s = input()
s = s.lower()
size = len(s)
for j in range(size//2):
if s[j] != s[-j-1]:
print(f"#{i+1} NO")
break
else:
print(f"#{i+1} YES")
문자열 길이의 절반만 검증하는 이유는 앞에서 뒤에서 같이 오기 때문이다.
해당 문자열 길이의 몫 값만큼만 반복문을 돌면 된다.
한 글자라도 다르다면 회문이 아니기 때문에 NO를 출력해준 뒤 break로 반복문을 중단 시킨다.
for문이 정상적으로 돌았다면 YES를 출력해준다.
문제 풀이 - 2
import sys
sys.stdin = open("input.txt", "r")
n = int(input())
for i in range(n):
s = input()
s = s.lower()
if s == s[::-1]:
print(f"#{i+1} YES")
else:
print(f"#{i+1} NO")
s[::-1]는 문자열을 완전히 뒤집은 상태를 말하기에 이를 비교해서 같으면 회문, 아니라면 회문이 아닌 단어가 된다.