#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
int main(void)
{
char chBuffer[31];
scanf("%[^\n]s", chBuffer);
bool bPalindrome_flag = true;
int iStart_Index = 0;
int iEnd_Index = strlen(chBuffer) - 1;
while (iStart_Index < iEnd_Index)
{
while (true)
{
if (chBuffer[iStart_Index] == ' ')
iStart_Index++;
else
break;
}
while (true)
{
if (chBuffer[iEnd_Index] == ' ')
iEnd_Index--;
else
break;
}
if (chBuffer[iStart_Index] != chBuffer[iEnd_Index])
{
bPalindrome_flag = false;
break;
}
iStart_Index++;
iEnd_Index--;
}
printf("%d \n", bPalindrome_flag);
return 0;
}
Q1. 책에 출력 된 표준 입력에는 띄어쓰기가 하나뿐인데 온라인 심사문제에서는 2칸짜리 1개, 1칸짜리 1개 이렇게 나와 있더라구요..
디버깅 하면서 로직을 짜서 하긴 했는데 (답을 맞추기 위해 로직을 우겨넣은 느낌) 답만 맞으면 상관이 없는건지 궁금합니다.
매번 답변 달아주셔서 감사합니다, 좋은 하루 되세요 :)
회문 판단에서 모든 공백을 무시하는 게 의도된 것이므로 맞습니다.
코딩 테스트 시험에서 보면 공백을 무시하지 않는 버전(쉬운 버전)과
공백을 무시하는 버전(어려운 버전)으로 출제되는 경향이 있습니다.
보통은 쉬운 버전을 먼저 작성하고, 어려운 버전을 시도하는 게 정석입니다.
문제를 풀이하는 과정에서 이 과정을 모두 거쳤을 겁니다.
축하합니다.