Python/알고리즘

재귀 호출

Bambi97 2024. 10. 22. 11:19

함수 안에서 동일한 함수를 호출하는 형태

(반복문을 많이 활용하다보니 속도가 중요한 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) 오메가 표기법 : 알고리즘 최상의 결과를 표기

'Python > 알고리즘' 카테고리의 다른 글

기본 정렬  (0) 2024.10.21