본문 바로가기
챌린지/코딩 테스트 30일 챌린지

[코딩 테스트 30일 챌린지] : 11

by 오주현 2022. 6. 22.
반응형
코딩 테스트 30일 챌린지

푼 문제 수 : 1
문제 요약

n개 문자열 데이터를 입력 받고 앞으로 읽으나 뒤로 읽으나 같은 회문 문자열이면 yes, 아니면 no 출력, 대소문자 구분x

 

입, 출력 예제

입력 :

5

level

moon

abcba

soon

gooG

출력 :

#1 YES

#2 NO

#3 YES

#4 NO

#5 YE

풀이
n = int(input())

for i in range(n):
    s = input()
    # s를 대문자화 시켜준다.
    s = s.upper()
    ############ 풀어서 쓴 코드 이 코드로 이해하는 게 좋다. ####################
    #s열의 길이를 구해준다.
    size = len(s)
    # 처음과 끝, 짝지어 비교하면 되므로 나누기 2를 해준 수 만큼 비교해 준다.
    for j in range(size//2):
        # 맨 뒤에서 리스트에 접근할 때 -1이 먼저인데 j는 0이라 -1-j를 해준다.
        if s[j] != s[-1-j]:
            # 문제 출력 조건이 #1 YES 이런 식이라 앞에 #을 앞에 넣어 작성해야 하므로 포멧 형태로 작성한다.
            # i는 0부터 돌기 때문에 +1을 해준다.
            print("#%d NO" %(i+1))
            break
    else:
        print("#%d YES" %(i+1))
    ############ 파이썬 특징을 살린 코드 ####################
    # 리버스 해준다. s[::-1]
    # if s == s[::-1]:
    #     print("#%d YES" %(i+1))
    # else:
    #     print("#%d NO" %(i+1))
    #################################

 

반응형

댓글