문제

접근법
재귀 함수란?
재귀 함수는 함수 내에서 스스로를 호출하는 것을 의미한다.
보통 재귀함수는 특정 조건을 만족할 때까지 자기 자신을 반복적으로 호출한다.
이 과정에서 주어진 조건을 만족하면 재귀호출을 멈추고 결과를 반환한다.
아래 코드를 예로 들면 함수 내에서 조건을 확인하여 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