[백준:25501] 재귀의 귀재 (JAVA)

dev_kiiim·2022년 11월 27일
0

CODING TEST

목록 보기
8/23
post-thumbnail

오늘도 역시나 재귀함수에 대해 풀어보았다.
이제껏 풀었던 문제들과는 다르게 힌트가 있어서 비교적 쉽게 접근할 수 있었으나,,
쉽지는 않았다,,,,,


static int cnt = 0;
public static int recursion(String s, int l, int r){
    cnt++;
    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 input = new Scanner(System.in);
    int T = input.nextInt();
    for(int i=0; i<T; i++) {
        cnt = 0;
        String S = input.next();
        System.out.println(isPalindrome(S) + " " + cnt);
    }
}

다른 부분은 힌트에서 다 구현되어 있었고,
재귀함수가 몇 번 호출하는지만 추가 구현하면 되는 문제였다.
그래서 recursion함수 안에서 카운트되도록 하면 되는데,
main에서도 쓰여야하는 변수이기때문에 전역변수로 cnt를 선언해주고,
recursion 함수에 cnt++를 추가하여 실행될때마다 카운트될 수 있도록 구현해주었다.

0개의 댓글