문제
팰린드롬은 앞에서부터 읽을 때와 뒤에서부터 읽을 때가 똑같은 단어를 의미한다. 예를 들어, eve, eevee는 팰린드롬이고, eeve는 팰린드롬이 아니다. 단어가 주어졌을 때, 팰린드롬인지 아닌지 판단해보자.
입력
길이가 20보다 작거나 같은 단어가 주어진다. 단어는 알파벳 소문자로 이루어져 있다.
출력
입력으로 주어진 단어가 팰린드롬이면 "true", 아니면 "false"를 출력한다.
문자열에서 앞 뒤로 같은지 비교하면 될 것 같다. SWEA에서 풀었던 문제와 비슷하다. 링크
strlen함수로 길이를 구하고 팰린드롬인지 확인하도록 하겠다.
#include <stdio.h>
#include <string.h>
int main(void){
int i;
char word[21] = {0};
scanf("%s", &word);
for(i=0; i<strlen(word); i++){
if(word[i] != word[strlen(word)-i-1]){
printf("false\n");
return 0;
}
}
printf("true\n");
return 0;
}
처음에 gets로 문자열을 입력받아서 dev에서는 컴파일 에러가 안났는데 백준에서는 컴파일 에러가 나길래 scanf로 바꿔썼다. 길이 20이하의 문자열을 입력받고 문자열의 첫번째 글자와 마지막 글자, 두번째 글자와 뒤에서 두번째 글자를 각각 비교하면서 서로 다르면 false를 출력하고 프로그램을 종료, 전부 같으면 true를 출력하게 된다.
'BOJ(백준)' 카테고리의 다른 글
[C언어] 백준 - 2558, 7287, 2475, 10926 (0) | 2021.12.29 |
---|---|
[C언어] 백준 2908 - 상수 (0) | 2021.02.27 |
[C언어] 백준 4673 - 셀프 넘버 (0) | 2021.02.21 |
[C언어] 백준 16503 - 괄호 없는 사칙연산 (0) | 2021.02.21 |
[C언어] 백준 1316 - 그룹단어 체커 (0) | 2021.02.14 |