각 테스트 케이스에 대해서원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되면 YES를 아니면 NO를 한 줄에 하나씩 출력
시간 제한: 1초
메모리 제한: 128 MB
"""
입출력 예시)
4
13
58
120
5056
-> YES
NO
YES
NO
"""
## 의사코드 ##
# 원래 수와 뒤집은 수를 합한 수
# new_n = str(int(n) + int(n[::-1]))
# 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지
# mid = (len(new_n) // 2)
# if new_n[:mid] == new_n[mid:]:
# print('YES')
첫 번째 시도
t = int(input())
for _ in range(t):
n = str(input())
new_n = str(int(n) + int(n[::-1]))
mid = (len(new_n) // 2)
if new_n[:mid] == new_n[mid:]:
print('YES')
else:
print('NO')
-> 합한 수가 좌우 대칭인지 확인하기 위해 합한 수의 길이의 중간 값으로 인덱싱하는 방법을 사용했는데 인덱싱이 잘못 되어서 틀림
통과한 코드
t = int(input())
for _ in range(t):
n = str(input())
new_n = str(int(n) + int(n[::-1]))
if new_n == new_n[::-1]:
print('YES')
else:
print('NO')
-> 합한 수가 좌우 대칭인지 확인하기 위해 그냥 합한 수와 합한 수를 뒤집은 수가 같은지 확인