본문 바로가기
Algorithm/파이썬 알고리즘 문제풀이 (코딩테스트대비)

[파이썬 알고리즘 문제풀이] : 회문 문자열 검사

by 오주현 2021. 12. 28.
반응형
문제

문자열을 입력 받고, 회문 문자열 검사를 한다. 단, 대소문자 구분을 하지 않는다.

주의

파이썬 특징을 살리는 코드로 간단하게 작성할 수도 있으나 가능하면 풀어서 쓰는 게 좋다.

풀이
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))
    #################################
반응형

댓글