본문 바로가기
Algorithm/DFS&BFS&백트래킹&재귀

[백준] 25501번 재귀의 귀재

by HANNI하니 2023. 1. 23.

사용 언어 - Python3

25501번: 재귀의 귀재 (브론즈2, 재귀)

문제 ★재귀 문제

 

25501번: 재귀의 귀재

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

www.acmicpc.net

 

 

정답

문제에 나온 코드를 파이썬으로 구현하는 문제

(코드 풀이)

recursion 함수에서 문자열s의 첫(0) 문자와 끝(len(s)-1) 문자가 같은지 재귀적으로 계속 비교한다.

비교하려는 문자열의 인덱스들이 뒷문자가 더 인덱스가 작다면, 1을 return한다.

첫 문자와 끝 문자가 같지않다면, 0을 return한다.

첫 문자와 끝 문자가 같다면, 그 다음 문자들을 비교한다. recursion(s,l+1,r-1)

# 정답

import sys
input = sys.stdin.readline

def recursion(s, l, r):
    global cnt
    cnt += 1
    
    if l >= r: return 1
    elif s[l] != s[r]: return 0
    else: return recursion(s, l+1, r-1)

def isPalindrome(s):
    return recursion(s, 0, len(s)-1)

for _ in range(int(input())):
    cnt = 0
    print(isPalindrome(input().rstrip()), cnt)

 


레퍼런스

  • 정답 참고
 

[🥉2 / 백준 25501 / 파이썬] 재귀의 귀재

25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net 문제 정휘는 후배들이 재귀 함수를 잘 다루

my-coding-notes.tistory.com

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

 

댓글