[Algorithm] 재귀 - 문자열 뒤집기

김상웅·2022년 7월 5일
0

[알고리즘]

목록 보기
18/18

✅ 문제


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
profile
누구나 이해할 수 있도록

0개의 댓글