백준 25501 재귀의 귀재 / C++

이유참치·2025년 12월 15일

백준

목록 보기
193/249

문제 : 25501

풀이 point

문제에 나와있는 코드를 본인의 언어에 맞게 구현한 후
재귀 실행 횟수를 구하면 된다.

풀이 방법

재귀 실행 횟수는 재귀가 끝나기 전 한번씩 ++1해주면 된다.

코드

//백준 25501, 재귀의 귀재

#include <iostream>

int recur(std::string_view s, int l, int r){
    if(l >= r) return 1;
    else if(s[l] != s[r]) return 1;
    else return 1 + recur(s, l+1, r-1);
}

bool isPalindrom(std::string_view s, int l, int r){
    if(l >= r) return true;
    else if(s[l] != s[r]) return false;
    else return isPalindrom(s, l+1, r-1);
}

int main (){
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);
    std::cout.tie(NULL);
    
    int T;
    std::string s;
    std::cin >> T;
    
    while(T--){
        std::cin >> s;
        std::cout << isPalindrom(s, 0, s.length()-1) << ' ' << recur(s, 0, s.length()-1) << '\n';    
    }

    return 0;
}
profile
임아리 - 대학생

0개의 댓글