문제
알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.
팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.
level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.
입력
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만
이루어져 있다.
출력
첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.
예제 입력 1
level
예제 출력 1
1
예제 입력 2
baekjoon
예제 출력 2
0
#include <stdio.h>
#include <string.h>
#define MAX_LEGNTH 100
int main() {
char str[MAX_LEGNTH];
bool result = true;
scanf("%s", str);
for (int i = 0; i < strlen(str) / 2; i++) {
if (str[i] != str[strlen(str) - 1 - i])
result = false;
}
if (result)
printf("1");
else
printf("0");
return 0;
}
입력을 받은후, 맨 처음과 맨끝, 1번째와 맨끝에서 -1번째.... 를 비교하면서 다르면 팰린드롬이 아니다.
문자열 길이의 반만 비교해주면 되는데, 어차피 반 이상의 문자들은 앞에서 데칼코마니의 반 접는 것처럼
이미 비교했기 때문이다.
'PS > 백준' 카테고리의 다른 글
백준 / 기본 수학 1 / 2292번 / 벌집 / C++ (0) | 2021.07.14 |
---|---|
백준 / 기본 수학 1 / 1712번 / 손익분기점 / C++ (0) | 2021.07.13 |
백준 / String(문자열) / 11365번 / !밀비 급일 / C (0) | 2021.02.27 |
백준 / String(문자열) / 1032번 / 명령 프롬프트 / C (0) | 2021.02.27 |