728x90

문제

"level" 과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문(回文, palindrome)이라 한다.
단어를 입력 받아 회문이면 1을 출력하고, 아니라면 0을 출력하는 프로그램을 작성하라.

 

제약 사항

각 단어의 길이는 3 이상 10 이하이다.

 

입력

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 하나의 단어가 주어진다.

 

출력

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

 

예제

[입력] [출력]
3
level     
samsung
eye        
#1 1
#2 0
#3 1

 

문제 해결 방법

  • 팰린드롬(회문) 알고리즘을 알면 쉽게 풀 수 있었던 문제였다.

팰린드롬(회문)의 예

 

코드

T = int(input())

for test_case in range(1, 1 + T):
    S = str(input())

    answer = 1
    for idx in range(len(S)):    # 정방향
        if S[idx] != S[len(S) - idx - 1]:
            answer = 0
            break
    
    print(f"#{test_case} {answer}")

 

참고

  • 난이도: D2
728x90