백준 10988번 문제 링크
문제 이름 : 팰린드롬인지 확인하기
주 언어 : Python
태그 : 구현 / 문자열
solved.ac 등급 : Bronze II (2023/05/16 확인)
문제 보기
문제 :
알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.
팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.
level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.
입력 :
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.
출력 :
첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.
백준 01259번 - 팰린드롬수 같이 풀어줄 수 있는 문제입니다.
for문에서 range(a, b, c) 를 사용하는것처럼 c = -1을 넣었다고 생각해서 "문자열"[::-1]을 하면, 문자열이 뒤집혀서 "문자열"[::-1] == "열자문"이 됩니다.
그렇다면 팰린드롬인지 판단하는 방법은 어떤 문자열 S에 대하여, S == S[::-1]이면 팰린드롬으로 판단해줄 수 있습니다.
문자열을 뒤집을 수 없는 언어라면 첫번째 글자와 마지막 글자가 동일한지, 2번째 글자와 뒤에서 2번째 글자가 동일한지...를 계속 비교하면서 풀어주어야 합니다.
위의 코드에서 3번째 줄 부터 6번째 줄 까지를 그냥 한줄로 print(+(S == S[::-1]))로 대체 할 수 있는데, 팰린드롬이라면 print(+(True))가 되고, True와 +가 만나면 True가 정수형 1이 되어 print(1)이 됩니다. False의 경우에도 마찬가지 입니다.
-번째 푼 문제 (2022/--/--)