just inside

[SWEA/D2] 1989. 초심자의 회문 검사 본문

coding test/SWEA

[SWEA/D2] 1989. 초심자의 회문 검사

방울도마도 2024. 11. 5. 14:45
728x90

[문제 링크]

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PyTLqAf4DFAUq

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


[문제 설명]

"level" 과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문(回文, palindrome)이라 한다.

단어를 입력 받아 회문이면 1을 출력하고, 아니라면 0을 출력하는 프로그램을 작성하라.


[제약 사항]

 

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


[입력]

 

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

각 테스트 케이스의 첫 번째 줄에 하나의 단어가 주어진다.

 

[출력]

 

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)


제출 코드

t = int(input())

for i in range(1, t+1):
    word = input()
    mid = len(word)//2
    if len(word)%2 == 1:
        if word[:mid+1] == word[-1:mid-1:-1]:
            res = 1
        else:
            res = 0
    else:
        if word[:mid] == word[-1:mid-1:-1]:
            res = 1
        else:
            res = 0
    print('#'+str(i), res)

 

풀이

  • 입력되는 문자가 짝수냐 홀수냐에 따라 슬라이싱을 다르게 해야한다.
    • 홀수인 경우 가운데 값까지 포함시켜 슬라이싱하고, 값이 같은지 비교한다.
    • 짝수인 경우 반으로 나눠 슬라이싱하고, 값이 같은지 비교한다.
  • 인덱스 값을 잘 확인할 것.

알아둘 사항

  •  
728x90