reverse() 메서드나 [::-1] 슬라이싱을 사용하지 않고, 재귀함수를 이용하여 문자열을 뒤집는 프로그램을 작성해주세요.
문자열인 str을 인자로 받습니다.
예시:
input = "hello"
output = "olleh"
재귀함수를 이용할 때 재귀함수를 끝내야 하는 조건문을 작성해주어야 합니다.
기본 조건은 다음과 같습니다.
#1
문자열의 길이가 1이라면 (남은) 문자열을 그대로 반환합니다.
#2
재귀함수가 실행되는 부분입니다.
재귀 함수가 실행될 때마다 첫번째 문자열을 가장 뒷부분으로 이동시켜줍니다.
코드를 통해 알아보겠습니다.
def recursion_reverse(str):
#1
elif len(str) == 1 :
return str
#2
return recursion_reverse(str[1:]) + str[0]
재귀함수 과정은 다음과 같습니다.
첫번째 >> str[0] = "h" , str[1:] = "ello" >> ello + h
두번째 >> str[0] = "e" , str[1:] = "llo" >> llo + e + h
세번째 >> str[0] = "l" , str[1:] = "lo" >> o + l + l + e + h
네번째 >> str[0] = "l" , str[1:] = "o" >> #1 조건에 부합
>> o + l + l + e + h = olleh