코딩테스트/백준

팰린드롬수 Python(백준, 1259)

멍토 2020. 8. 18.

난이도 : Bronze 1

문제번호 : 1259

문제 주소 및 출처입니다.

www.acmicpc.net/problem/1259

 

1259번: 팰린드롬수

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

www.acmicpc.net


목차

1. 문제 설명

2. 문제 해석

3. 소스 코드


1. 문제 설명

어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.

수도 팰린드롬으로 취급할 수 있다.

수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다.

121, 12421 등은 팰린드롬수다.

123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다.

또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만,

특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다.

입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.

출력

각 줄마다 주어진 수가 팰린드롬수면 'yes', 아니면 'no'를 출력한다.


2. 문제풀이

알고리즘 풀때 나오는 가장 기본적인 문제 중 하나이다.


문자열을 입력받으면 반복문을 돌리며 앞과 뒤가 같은지 확인하면 된다.

여기서 한가지 팁은 문자열의 반절까지만 반복문을 돌리면 되는것이다.

그 이유는 모르겠으면 생각해보면 좋겠다.


3. 소스코드

while True:
    user_input = input()
    if user_input == '0':
        break
    
    length = len(user_input)
    answer = 'yes'
    for i in range(length//2):
        if user_input[i] != user_input[length-1-i]:
            answer = 'no'
            break
    
    print(answer)

댓글

💲 광고입니다.