취업/TIL

20231113_회문 문자열 검사[Python]

개발자 덕구🐾 2023. 11. 13. 23:13
728x90

 

 

 

 

귀여운 망글곰

 

 

 

 

 

 

 

 

오늘도 김태원님의 인프런 강의 _ 섹션 3의 문제를 하나 풀었다. 

섹셕3의 첫번째 문제인 회문 문자열 검사이다. 

 

 

 

내가 푼 풀이 : 

if __name__=="__main__" :
    n = int(input())
    for i in range(1,n+1) :
        tmp = list(input().upper())
        for j in range(len(tmp)//2) :
            if tmp[j]!=tmp[-j-1] : 
                print('#'+str(i)+ ' NO') 
                break 
        else : print('#'+str(i)+ ' YES')

 

 

 

1. upper()를 이용하여 전부 대문자로 만든다. 

2. 2로 나눈 몫만큼 for문을 돌면서 앞, 뒤에서부터 하나씩 검사한다.

2-1 .만약 다른 문자가 있다면 바로 NO를 출력하고 break를 한다.

2-2 . for-else 문을 이용해 break에 들어가지 않았다면 YES를 출력한다. 

 

 

 

 

과연 강사님은 어떻게  푸셨을까 ..? 

 

오잉 

강사님이 처음에 짜주신 코드는 내가 만든 코드와 거의 유사하다. 

그 다음 파이썬 답게 하나의 코드를 하나 더 만들어주셨다. 

 

 

if __name__=="__main__" :
    n = int(input())
    for i in range(1,n+1) :
        tmp = input().upper()
        if tmp == tmp[::-1] :
            print("#%d YES" %(i))
        else :  print("#%d NO" %(i))

 

 

 

와우 

리스트[::-1] 하면 reverse 되는 것을 깜빡하고 있었다. 

 

반응형