🔗문제 풀러가기
단계별로 풀어보기 단계 21의 3번째 문제이다.
재귀함수를 사용하여 문제를 해결하였다.
#include <iostream>
#include <cstring>
using namespace std;
int cnt = 0;
int recursion(const char* s, int l, int r)
{
cnt++;
if (l >= r) return 1;
else if (s[l] != s[r]) return 0;
else return recursion(s, l + 1, r - 1);
}
int isPalindrome(const char* s)
{
return recursion(s, 0, strlen(s) - 1);
}
int main()
{
int t;
string input;
cin >> t;
for (int i = 0; i < t; i++)
{
cnt = 0;
cin >> input;
cout << isPalindrome(input.c_str()) << " " << cnt << endl;
}
}
c_str()함수는 string을 상수인 char형 포인터를 리턴하는 함수이다.