coding test - python/기본기 문제

문제 / 회문 문자열 검사 / Python

sillon 2022. 4. 1. 18:55
728x90
반응형

 

문제 제목: 회문 문자열 검사

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

단 회문을 검사할 때 대소문자를 구분하지 않습니다.

▣ 입력설명

 

첫 줄에 정수 N(1<=N<=20)이 주어지고, 그 다음 줄부터 N개의 단어가 입력된다.

각 단어의 길이는 100을 넘지 않는다.

 

▣ 출력설명

 

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

 

▣ 입력예제 

 

5

level

moon

abcba

soon

gooG

 

▣ 출력예제 

 

#1 YES

#2 NO

#3 YES

#4 NO

#5 YES


나의 풀이

N = int(input())

def solution(s):
    answer = 'YES'
    size = len(s)
    s = s.upper()
    if len(s) == 1:
        answer = 'YES'
    else :
        for i in range(0,size//2+1):
            if s[i] == s[-1-i]:
                pass
            else:
                answer = "NO"
    return answer

for x in range(N):
    s = input()
    print(f"#{x+1} {solution(s)}")

문자열에서

만약 s = 'abcde'라고 하자,

s[-1] = 'e' 이다!

문자열 순서의 특징을 이용해서 잘 구하면 된다.

 

모범답안

N = int(input())

for i in range(N):
    s = input()
    s = s.upper()
    if s == s [::-1]:
        print("#%d YES" %(i+1))
    else:
        print("#%d NO" %(i+1))

※ 알아야 할 것

- 문자열에서 -1번째는 문자열의 제일 뒤에있는 인덱스와 같다.

 

 

728x90
반응형