팰린드롬인지 확인하기
나는 확인안하고 싶단 말이야 ㅠㅠ
구현은 쉬운 문젠데 생각지 못한 반례가 많아서 애먹은 문제이다.
처음에는 문자열을 입력받아서 문자열을 처음부터 끝까지 + 반대방향으로 처음부터 끝까지 구현을 하려고 하였으나....
생각보다 다양한 반례로 펠린드롬이라면 문자열을 반만 탐색하여도 되기 때문에 연산 횟수를 줄였다.
#include <stdio.h>
#include <string.h>
int main(){
char a[105];
int result=1;
scanf("%s",a);
int len=strlen(a);
for(int i=0;i<len/2;i++){
if(a[i]!=a[len-i-1]) result=0;
}
printf("%d",result);
return 0;
}
혹시나 도움이 되고자 반례들을 남겨드립니다.
1. a
2. abba
3. babcb //처음에 홀수번째가 result==0인 경우 제외처리하였는데 저런 입력을 생각하지 못했었다 ㅠㅠ🤣
4. aba
이 정도 테스트케이스 통과하는 코드면 정답이지 않을까
'백준 C언어 > bronze' 카테고리의 다른 글
백준 2292 벌집 C언어_230114 (0) | 2023.01.14 |
---|---|
백준 9610 사분면 C언어_230113 (0) | 2023.01.13 |
백준 10448 유레카이론 C언어_230107 (0) | 2023.01.13 |
백준 1292 쉽게 푸는 문제 C언어_230113 (0) | 2023.01.13 |
백준 1934 최소공배수 C언어_230113 (0) | 2023.01.13 |
댓글