회문(palindrome)은 영어 단어 radar와 같이 순서를 거꾸로 뒤집어도 원본과 동일한 단어를 의미한다. 다음 C 코드의 isPalindrome() 함수는 입력 문자열이 회문인 경우 1을 반환하고, 그렇지 않을 경우는 0을 반환한다. (가), (나)에 들어갈 내용을 바르게 연결한 것은?
#include <stdio.h>
char stack[100];
int top = -1;
void push(char ch) {stack[++top] = ch;}
char pop() {return stack[top--];}
int isEmpty() {return top == -1;}
int isPalindrome(char *str) {
int i;
for ( i = 0; str[i]; i++ )
(가) ;
for ( i = 0; !isEmpty(); i++ )
if ( (나) )
return 0;
return 1;
}
int main() {
char input[100];
scanf("%s", input);
printf("%s",
isPalindrome(input) ? "True" : "False");
} (가) (나)
- ①push(str[i]) str[i] == pop()
- ②push(str[i]) str[i] != pop()
- ③push(str[top-i]) str[i] == pop()
- ④push(str[top-i]) str[i] != pop()
선지를 골라 바로 채점해 보세요.
정답 ②
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)