728x90
반응형
하향식 카운팅
def count_down(n):
""" 10부터 1로 감소하는 재귀함수 """
print(n)
if n == 1:
return
returncount_down(n - 1)
상향식 카운팅
def count_up(n):
""" 1부터 10까지 증가하는 재귀함수 """
print(n)
if n == 10:
return
return count_up(n + 1)
배열의 요소를 제곱하는 재귀함수
def double_array(array, index):
"""배열의 요소를 제곱하는 재귀함수 """
if index == len(array):
return array
array[index] *= 2
return double_array(array, index + 1)
array = [1, 2, 3, 4, 5]
print(double_array(array, 0))
정수형 배열을 받아서 총합하는 재귀함수
def mysum(arr):
if len(arr) == 1:
return arr[0]
return arr[0] + mysum(arr[1: len(arr)])
print(mysum(array))
문자열 뒤집기
strs = "abcde"
def myreverse(strs, string_len):
if string_len == 0:
return strs[string_len]
else:
print(strs[string_len])
return myreverse(strs, string_len - 1)
X 세기
strs1 = "axbxcx"
def count_x(strings, count):
if count == -1:
return 0
if strings[count] == 'x':
return 1 + count_x(strings, count - 1)
else:
return count_x(strings, count - 1)
print(count_x(strs1, len(strs1) - 1))
# Sol.2
strs1 = "xabxcx"
def count_x(strings):
if len(strings) == 0:
return 0
if strings[-1] == 'x':
return 1 + count_x(strings[0: len(strings) - 1])
return count_x(strings[0: len(strings) - 1])
print(count_x(strs1))
- Sol2
- strings에서 slice를 이용해 0에서부터 len(str1)를 호출한다.
- 하향식으로 접근하기위해 len(str)에서 1씩 감소 시킨다.
배열에 속한 문자열의 갯수 세기
a1 = ["ab", "c", "def", "ghij"]
def count_c(arr):
if len(arr) == 0:
return 0
return len(arr[0]) + count_c(arr[1:])
print(count_c(a1))
특정 조건을 만족하는 배열 리턴하기
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def prime_number(arr):
if len(arr) == 0:
return [] # 종료 조건을 리스트(배열)로 설정
if arr[0] % 2 == 0:
return [arr[0]] + prime_number(arr[1:]) # 짝수를 찾기 위해 arr[0]에 []를 씌워주고 재귀하는데 전체 범위를 하나 줄임
return prime_number(arr[1:]) # 짝수가 아닌 경우 전체 범위를 하나 줄인 다음 재귀함
삼각수
tn = [1, 3, 6, 10, 15, 21]
def solve(n):
if n == 0:
return 0
return solve(n - 1) + n
print(solve(6))
특정 문자열의 위치를 반환하는 재귀식
alpha1 = "abxxc"
def method(alpha: str):
if alpha[0] == 'x':
return 0
return 1 + method(alpha[1:])
print(method(alpha1))
728x90
반응형
'Algorithm > Snippet' 카테고리의 다른 글
[Snippet] 정수의 자리 수 구하기 (0) | 2022.12.08 |
---|---|
[regex] Apostrophe 찾기 (0) | 2022.04.17 |