티스토리 뷰

알고리즘/백준

[BAEKJOON] 25501 재귀의 귀재

응애~ 개발자 2022. 9. 10. 00:45
728x90
반응형

문제 요약

  • 알고리즘 분류: 문자열,  재귀
  • 난이도: Bronz2
  • 문제내용:
    • 첫째 줄 테스트 케이스 T와 T개 만큼 문자열을 입력한다.
    • isPalindrome 함수 만들고  각 테스트 케이스마다 팰린드롬 여부와 재귀 호출 몇번 했는지 출력한다.
  • 사이트 주소: https://www.acmicpc.net/problem/25501
 

25501번: 재귀의 귀재

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

www.acmicpc.net

문제 풀이

  1. isPalindrome 선언하고 파라미터 오른쪽 왼쪽 인덱스를 선언한다.
  2. 왼쪽 인덱스 수와 오른쪽 인덱스 수랑 같거나 큰경우 팰린드롬 참으로 한다.
  3. 왼쪽 인덱스 값과 오르쪽 인덱스 값이 다르면 팰린드롬 거짓으로 한다.
  4. 그 외의 경우 isPalindrome 재 호출하고 왼쪽 인덱스 앞으로 이동하고 오른쪽 인덱스는 뒤로 이동한다.

코드

JAVA

package TestCode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	
	static int count;
	static String sentence;
	
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
	    
		for(int i = 0; i < n; i++) {
			sentence = br.readLine();
			count = 0;
			System.out.println(isPalindrome(0, sentence.length() - 1) + " " + count);
		}

	}
	
	public static int isPalindrome(int r, int l) {
		count++;
		if (r >= l) {
			return 1;
		}else if(sentence.charAt(r) != sentence.charAt(l)) {
			return 0;
		}else {
			return isPalindrome(r + 1, l - 1);
		}
		
	}	
}

Python

import sys
input = sys.stdin.readline

def isPalindrome(r, l):
    global count, s
    count += 1
    if r >= l: return 1
    elif s[r] != s[l]: return 0
    return isPalindrome(r + 1, l - 1)
    
for _ in range(int(input())):
    count = 0
    s = input()
    print(isPalindrome(0, len(s) - 2), count)
728x90
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[BAEKJOON] 24060 알고리즘 수업 - 병합 정렬 1  (1) 2022.09.19
[BAEJOON] 2743 단어 길이 재기  (0) 2022.09.19
[BAEJOON] 1037 약수  (0) 2022.09.06
[BAEJOON] 5058 배수와 약수  (0) 2022.09.06
[BAEJOON] 1358 하키  (0) 2022.08.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함