https://swexpertacademy.com/main/solvingProblem/solvingProblem.do
"level" 과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문(回文, palindrome)이라 한다.
단어를 입력 받아 회문이면 1을 출력하고, 아니라면 0을 출력하는 프로그램을 작성하라.
[제약 사항]
각 단어의 길이는 3 이상 10 이하이다.
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 하나의 단어가 주어진다.
[출력]
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
입력
3
level
samsung
eye
출력
#1 1
#2 0
#3 1
for i in range(int(input())):
s = input()
# s2 = reversed(s)
# print(type(s2), s2, "".join(s2))
print(f"#{i+1} 1") if s == "".join(reversed(s)) else print(f"#{i+1} 0")
이번 문제는 쉬웠지만 reversed때문에 글을 써봤다.
처음에는 조건문 부분을
if s == reversed(s)
라고 썼는데 틀렸다. reversed()는 iterator를 반환하기 때문이다.
따라서 문자열인 s와 비교하려면 join()을 통해 문자열로 변경해야한다.