본문 바로가기
Beakjoon&프로그래머스/Java

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

by 현장 2025. 12. 27.

-Code

import java.util.Scanner;

public class BOJ25501 {
    static int cnt;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

        for (int i = 0; i < n; i++) {
            String line = sc.next();
            // cnt 초기화
            cnt = 0;
            int isPalin = isPalindrome(line, 0, line.length() - 1);
            System.out.println(isPalin + " " + cnt);
        }
    }
    
    private static int isPalindrome(String str, int left, int right) {
        cnt++;
        // 왼쪽 idx가 오른쪽 idx를 넘어가면 펠린드롬
        if (left >= right) {
            return 1;
        }
        // 왼쪽 단어와 오른쪽 단어가 다르면 0 반환
        if (str.charAt(left) != str.charAt(right)) {
            return 0;
        }
        // 왼쪽과 오른쪽을 중심으로 이동하면서 검사
        return isPalindrome(str, left + 1, right - 1);
    }
}