728x90
https://www.acmicpc.net/problem/25501
25501번: 재귀의 귀재
각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다.
www.acmicpc.net
재귀를 얼마나 이해했는지 묻는 문제이다.
재귀 함수를 언제 호출하는 지 생각해보라는 문제인 듯 하다.
주의할 점은 charAt 메소드를 쓸 때 인덱스 범위를 조심해야 한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static int COUNT = 0;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int number = Integer.parseInt(br.readLine());
for (int i = 0; i < number; i++) {
String str = br.readLine();
COUNT = 0;
sb.append(isPalindrome(str)).append(" ").append(COUNT).append("\n");
}
System.out.println(sb);
br.close();
}
public static int recursion(String s, int l, int r) {
if (l >= r) {
return 1;
} else if (s.charAt(l) != s.charAt(r)) {
return 0;
} else {
COUNT++;
return recursion(s, l + 1, r - 1);
}
}
public static int isPalindrome(String s) {
COUNT++;
return recursion(s, 0, s.length() - 1);
}
}
'백준 > 재귀' 카테고리의 다른 글
BOJ 11729 - 하노이 탑 이동 순서 (0) | 2022.11.02 |
---|---|
BOJ 2447 -별 찍기10 (0) | 2022.11.02 |
BOJ 24060 - 알고리즘 수업 - 병합 정렬 1 (0) | 2022.11.01 |
BOJ 10870 - 피보나치 수5 (0) | 2022.11.01 |
BOJ 10872 - 팩토리얼 (0) | 2022.11.01 |