코린이의 소소한 공부노트

[백준 온라인 저지] 25501. 재귀의 귀재 본문

코딩테스트 풀이/JAVA

[백준 온라인 저지] 25501. 재귀의 귀재

무지맘 2023. 4. 20. 16:15

1. 입력

- 첫째 줄에 테스트케이스의 개수 T가 주어진다. (1 <= T <= 1,000)

- 둘째 줄부터 T개의 줄에 알파벳 대문자로 구성된 문자열 S가 주어진다. (1 <= S의 길이<= 1,000)

 

2. 출력

- 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다.

- 함수는 주어진다.

 

3. 코드

import java.util.*;
import java.io.*;
class Main {
    static int count;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int n = Integer.valueOf(br.readLine());
        for(int i=0 ; i<n ; i++){
            count = 0;
            String s = br.readLine();
            bw.write(isPalindrome(s) + " " + count + "\n");
        }
        bw.flush(); bw.close();
    }
    
    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;
        return recursion(s, l+1, r-1);
    }
    
    static int isPalindrome(String s){
        return recursion(s, 0, s.length()-1);
    }  
}