문제

접근법
재귀 함수란?
재귀 함수는 함수 내에서 스스로를 호출하는 것을 의미한다.
보통 재귀함수는 특정 조건을 만족할 때까지 자기 자신을 반복적으로 호출한다.
이 과정에서 주어진 조건을 만족하면 재귀호출을 멈추고 결과를 반환한다.
아래 코드를 예로 들면 함수 내에서 조건을 확인하여 1 또는 0 을 반환하거나, 조건이 만족되지 않는 경우 다시 재귀 호출을 수행하고 있다.
정리
풀이를 위한 재귀 함수 
recursion 와 호출하는 isPalindrome 는 문제에서 주어진다. 재귀 함수의 호출 횟수를 출력하기 위해 static int result를 사용함. static 을 초기화 하기 위해 for 문 안에서 0 으로 초기화 한다.코드
public class Main {
	
	static int result;
	public static int recursion(String s, int l, int r){
		result++;
        if(l >= r) return 1;
        else if(s.charAt(l) != s.charAt(r)) return 0;
        else return recursion(s, l+1, r-1);
    }
    public static int isPalindrome(String s){
        return recursion(s, 0, s.length()-1);
    }
    
    public static void main(String[] args)throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    		int N = Integer.parseInt(reader.readLine());
    		for(int i = 0 ; i<N; i++) {
    			String testCase = reader.readLine();
    			result = 0;
    			int e = isPalindrome(testCase);
    			System.out.println(e+" "+ result);
    		}
    	
    }
}
Share article