OneDev
[JAVA] 백준 25501번 : 재귀의 귀재 본문
https://www.acmicpc.net/problem/25501
25501번: 재귀의 귀재
각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다.
www.acmicpc.net
◎ 입력
첫째 줄에 테스트케이스의 개수 T가 주어진다. (1≤T≤1000)
둘째 줄부터 T개의 줄에 알파벳 대문자로 구성된 문자열 가 주어진다. (1≤|S|≤1000)
◎ 출력
각 테스트케이스마다 isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다.
◎ 풀이
문제 하단부에 Hint 로 주어진 recursion 메소드와 isPalindrome 메소드를 직접 구현할 필요가 없어 비교적 쉽게 느껴지는 문제이다.
recursion 메소드가 호출된 횟수를 저장하기 위해 전역변수 count 를 선언하였다.
recursion 메소드가 호출 될 때마다 count 변수의 값을 1 증가시키고, 하나의 test case를 입력받을 때 다시 count 변수의 값을 초기화 시켜 각 test case별로 알맞은 값을 구할 수 있도록 변형하였다.
import java.util.Scanner;
public class Main{
static int count;
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);
}
public static int isPalindrome(String s){
return recursion(s, 0, s.length()-1);
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int t = scan.nextInt();
for(int i=0;i<t;i++) {
count = 0;
String s = scan.next();
System.out.printf("%d %d\n",isPalindrome(s),count);
}
}
}
'자료구조&알고리즘 > BOJ' 카테고리의 다른 글
[C] 백준 10988- 팰린드롬인지 확인하기 (0) | 2023.07.19 |
---|---|
[C] 백준 9086 - 문자열 (0) | 2023.07.18 |
[JAVA] 백준 2563- 색종이 (0) | 2023.06.03 |
[JAVA] 백준 2557 번 : Hello World! (백준 Java public class) (0) | 2023.01.03 |
[C++] 백준(BOJ) 2738번 - 행렬 덧셈 (0) | 2022.12.01 |
Comments