본문 바로가기
알고리즘

백준 10174번: 팰린드롬 (python, 파이썬)

by 블쭌 2020. 10. 3.
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()

  • 출처

www.acmicpc.net/problem/10174

728x90

댓글