[백준] 25501번: 재귀의 귀재 (C언어)

728x90
728x90

https://www.acmicpc.net/problem/25501

 

25501번: 재귀의 귀재

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

www.acmicpc.net

 

난이도: solved.ac 브론즈 2

 

 

문제는 길지만 어렵지 않은 문제다

 

그냥 문제에 나온 코드를 복붙하여 recursion 함수에 횟수를 count해주는 변수 추가만 해주면 된다

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

int cnt;

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, pal, i;
    scanf("%d", &T);
    char S[1001];
    for (i = 0; i < T; i++) {
        cnt = 0;
        scanf("%s", &S);
        pal = isPalindrome(S);
        printf("%d %d\n", pal, cnt);
    }
    return 0;
}
반응형