사용 언어 - Python3
25501번: 재귀의 귀재 (브론즈2, 재귀)
문제 ★재귀 문제★
정답
문제에 나온 코드를 파이썬으로 구현하는 문제
(코드 풀이)
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)
레퍼런스
- 정답 참고
- 정답 깃허브
'Algorithm > DFS&BFS&백트래킹&재귀' 카테고리의 다른 글
[프로그래머스 lv 2] 게임 맵 최단거리 (0) | 2023.01.31 |
---|---|
[프로그래머스 lv 2] 타겟 넘버 (0) | 2023.01.27 |
[백준] 10872번 팩토리얼 (0) | 2023.01.23 |
[백준] 14889번 스타트와 링크 (1) | 2023.01.20 |
[백준] 14888번 연산자 끼워넣기 (0) | 2023.01.19 |
댓글