[Java] 백준 25501번 : 재귀의 귀재

25501번 : 재귀의 귀재
HootJem's avatar
Aug 27, 2024
[Java] 백준 25501번 : 재귀의 귀재
 

문제

notion image

접근법

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

[HootJem] 개발 기록 블로그