본문 바로가기

백준 알고리즘 문제풀이

[Python] 1259번: 펠린드롬수

https://www.acmicpc.net/submit/1259/53021722

 

로그인

 

www.acmicpc.net

 

앞뒤가 똑같으면 yes다 다르면 no 

기러기 스위스 우영우 같은 단어들을 의미한다

 

import sys

while(True):
    A=sys.stdin.readline().strip()

    if A=='0':
        break

    if A == A[::-1]:  #처음부터 끝까지 슬라이싱하되 증감폭이 -1로 설정(문자열을 reverse 하는 방법이다!)\
        print('yes')
    else:
        print('no')
   
   

 

<핵심코드>

[::-1]의 의미? 

리스트 슬라이싱을 하되, [a:b:x] 가 존재한다고 가정하에 a~b-1까지의 범위의 리스트가 만들어지되, x 만큼 증감폭(건너뛰기)를 가진다고 생각하자

 

ex: [1:20:2]인경우 , [1 ,3 ,5 ,7 ,9... 19까지만 들어가게 된다] 

 

이때 [-1]은 리스트의 가장 마지막 원소를 의미한다는걸 응용하면 위의 예제는 해석이 가능하다~