함수 안에서 동일한 함수를 호출하는 형태
(반복문을 많이 활용하다보니 속도가 중요한 AI에서는 불리한 방식인 것 같다.)
팩토리얼?
n! = n * (n-1)!
5! = 5 * 4 * 3 * 2 * 1
3! = 3 * 2 * 1
해당 수에서 1까지의 곱
1. 팩토리얼 구현
def factorial(num):
if num > 1:
return num * factorial(num-1)
else:
return num
for num in range(5):
print(factorial(num))
<결과 출력>
0
1
2
6
24
2. 재귀 호출
def palindrome(word):
if len(word) == 1:
return True
elif word[0] == word[-1]:
return palindrome(word[1:-1])
else:
return False
palindrome('기러기')
<결과 출력>
True
3. 시간 복잡도와 공간 복잡도
알고리즘 복잡도 계산이 필요한 이유
다양한 알고리즘 중 어떤 알고리즘이 더 효율적인지 확인하기 위함
(1) 시간 복잡도
알고리즘 실행 속도
(2) 공간 복잡도
알고리즘이 사용하는 메모리 사이즈
(3) 알고리즘 성능 표기법
1) 오메가 표기법 : 알고리즘 최상의 결과를 표기