[파이썬 알고리즘 문제풀이] - Section3 / 탐색 & 시뮬레이션 -1

Chooooo·2023년 1월 24일
0

회문 문자열 검사

N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열)
이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력하는 프로그램을 작성한다.
단 회문을 검사할 때 대소문자를 구분하지 않습니다.

▣ 입력설명
첫 줄에 정수 N(1<=N<=20)이 주어지고, 그 다음 줄부터 N개의 단어가 입력된다.
각 단어의 길이는 100을 넘지 않는다.

▣ 출력설명
각 줄에 해당 문자열의 결과를 YES 또는 NO로 출력한다.

import sys
# sys.stdin = open("input.text", "rt")

N = int(input())
for i in range(N):
    data = input()
    data = data.lower()
    for j in range(len(data)):
        if data[j] != data[-j-1]:   #파이썬은 거꾸로 접근할 때 마이너스 부호로 접근할 수 있다는거 !
            print(f"#{i+1} NO")
            break
    else:
        print(f"#{i+1} YES")

    ##
    # data = input()
    # data = data.lower()
    # if data == data[::-1]:
    #   문자열 거꾸로 맞는지? 이런식으로 파이썬의 강력함을 활용해도 좋음.`

코딩테스트에서는 파이썬의 강력함을 활용하는 것도 좋다. 하지만 위에 코드가 정석이기에 인덱스 마이너스로 거꾸로 접근한다 정도 챙겨가기.

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글