백준(C언어)/23년 1월

재귀 - 25501번

C0MPAS 2023. 1. 7. 17:29

1월 7일(토) - 재귀(25501번)

 

25501번: 재귀의 귀재

각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다.

www.acmicpc.net

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

문제점

x

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

풀이

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>
#include <string.h>

int count;

int recursion_count()
{
    count++;
    return count;
}

int recursion(const char* s, int l, int r)
{
    if (l >= r)
    {
        return 1;
    }
    else if (s[l] != s[r]) 
    {
        return 0;
    }
    else
    {
        recursion_count();
        return recursion(s, l + 1, r - 1);
    }
}

int isPalindrome(const char* s)
{
    return recursion(s, 0, strlen(s) - 1);
}

int main(void)
{
    int t;
    scanf("%d", &t);

    char s[1001];

    for (int i = 0; i < t; i++)
    {
        scanf("%s", s);
        printf("%d ", isPalindrome(s));
        printf("%d\n", recursion_count());
        count = 0;
    }
}