[python] 백준 1259 : 팰린드롬수

728x90

https://www.acmicpc.net/problem/1259

 

1259번: 팰린드롬수

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.

www.acmicpc.net

알고리즘 분류 : 구현, 문자열


1 : reversed()와 join함수를 이용한 풀이

while True:
    N = input()
    if N == '0':
        break
    if N == ''.join(reversed(N)):
        print('yes')
    else:
        print('no')

reversed()함수

문자열을 반대로 돌린값을 반환한다.

 

join함수

'구분자'.join(리스트)

인자로 넘겨주는 리스트의 요소들을 구분자로 구분하여 하나의 문자열로 합쳐준다.

각 문자열끼리의 덧셈을 하되 구분자로 구분시켜주는 것과 같다.

 

예를들어 N에 123을 입력 받았을 경우, 위 코드에서는 join함수에서 구분자에 아무 값도 주지 않았으므로 거꾸로 뒤집은 값 321을 반환한다.

' '.join(reversed(N)) 처럼 구분자에 공백을 넣었다면 3 2 1이 반환되었을 것이다.

 

 

2 : 슬라이싱을 이용한 풀이

 

while True:
    N = input()
    if N == '0':
        break
    if N == N[::-1]:
        print('yes')
    else:
        print('no')

[::-1]은 해당 리스트나 문자열을 거꾸로 뒤집는다.

728x90