[백준 25501] 재귀의 귀재

alsry._.112·2023년 10월 25일
0

백준

목록 보기
94/102

🔗문제 풀러가기
단계별로 풀어보기 단계 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;
    }
}

해석

  1. 수를 입력받고 입력받은 수만큼 문자열을 입력받아 제공된 isPalindrome을 실행한다.

    c_str()함수는 string을 상수인 char형 포인터를 리턴하는 함수이다.

  2. recursion이 실행될때마다 함수의 호출 횟수를 나타내는 cnt를 ++한다.
  3. 출력 조건에 맞게 출력만 해주면 끝!
profile
소통해요

0개의 댓글