728x90
문제
팰린드롬은 앞으로 읽으나 뒤로 읽으나 똑같은 단어나 숫자들을 말한다. 일반적으로 대소문자를 구분하지 않지만, 공백은 구분한다.
다음은 팰린드롬의 예시이다.
- Anna
- Harrah
- Arora
- Nat tan
- 9998999
- 123 321
- $$$&&$$$
모든 라인에 대해 팰린드롬인지 아닌지를 구분하는 프로그램을 작성하시오.
- 입력
첫째 줄에 테스트 케이스의 개수 n이 주어진다.
각 테스트 케이스는 한 줄의 텍스트로 이루어져있으며, 비어있는 줄은 없다.
- 출력
각 테스트 케이스에 대해 정답을 출력한다.
팰린드롬일 경우 "Yes"를 출력하고, 그렇지 않을 경우 "No"를 출력한다.
- 코드
def palindrome(str):
# 소문자로 변환
# Change small letter
str = str.lower()
# 반복문 횟수
# number of iteration
length = len(str) // 2
for i in range(length):
# index에 맞게 문자열이 같은지 확인
# Check that the strings are the same for index
# 시간 단축을 위해 하나라도 틀리면 바로 return 'No'
# For time reducing if one is false then return 'No'
if str[i] != str[(len(str)-1)-i]:
return 'No'
# 여기까지 왔다면 동일하다는 증거이기 때문에 Yes return
# Reaching this point means that all strings are same so we return 'Yes'
return 'Yes'
def solution():
num = int(input())
for i in range(num):
print(palindrome(input()))
solution()- 출처
728x90
'알고리즘' 카테고리의 다른 글
| 백준 2839번: 설탕 배달 (python, 파이썬) (0) | 2020.10.07 |
|---|---|
| 백준 6603번: 로또 (python, 파이썬) (0) | 2020.10.06 |
| 백준 15649번: N과 M (python, 파이썬) (2) | 2020.10.05 |
| 백준 2309번: 일곱 난쟁이 (python, 파이썬) (0) | 2020.10.04 |
| 백준 1065번: 한수 (python, 파이썬) (0) | 2020.10.03 |
댓글