문제

알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.

팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. 

level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.

 

 

조건 및 입출력

1. 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.

2. 첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.

 

 

코드
# 입력부
mystr=list(input());

# 처리부
tmpstr=mystr[::-1];

# 출력부
if(mystr==tmpstr):
    print(1);
else:
    print(0);

 

 

풀이 과정

일일이 리스트를 비교할 수도 있겠지만, 슬라이싱으로 간단하게 풀었다.

처음 문자열을 입력 받을 때 리스트로 입력받았다. 그 후 비교할 리스트를 슬라이싱을 통해 역순으로 값을 삽입했다.

 

파이썬의 장점은 리스트끼리 비교가 된다는 것이다.

장점을 적극 활용하여 처음 입력받은 리스트와 거꾸로 뒤집은 리스트를 비교하여 둘다 값이 같으면 1을 출력하고, 그렇지 않으면 0을 출력한다.

 

 


여담

이걸 C언어로 처리하려고 했다면,저 코드의 1.5~2배는 나왔을 것 같다..

 

파이썬 짱!

 

코드가 이상하거나, 이해되지 않는 부분이 있다면 댓글 남겨주세요!

+ 더 좋은 풀이 방법이 있다면 알려주시면 감사하겠습니다 :)

+ Recent posts