글 작성자: 취업중인 피터팬
728x90

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

 

25501번: 재귀의 귀재

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

www.acmicpc.net

 

문제 설명

 

문자열에 앞뒤가 같은지 재귀를 사용하여 확인하는 문제입니다. 

 

문제 풀이

사실 문제속에 정답이 다 있습니다. 문제를 보고 조금 당황했어요. 반복문과 출력만 해주면 됩니다.

import java.util.Scanner;

public class Main {

    static int count = 0;

    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);

       int n = sc.nextInt();
       sc.nextLine();

       for(int i=0; i<n; i++){
           String s = sc.nextLine();
           System.out.println(isPalindrome(s) + " " + count);
       }

    }

    public static int isPalindrome(String s){
        count = 0;
        return recursion(s,0,s.length()-1);
    }

    public static int recursion(String s,int l,int r){
        count++;
        if(l >= r) return 1;
        else if(s.charAt(l) != s.charAt(r)) return 0;
        else return recursion(s,l+1,r-1);
    }


}