Hippo's data
재귀 알고리즘(recursive algorithms) 본문
728x90
오늘은 재귀 알고리즘(recursive algorithms)에 대해 알아보겠습니다
재귀 알고리즘에서 재귀적(recursive)이란 것은 무엇을 의미할까요?
하나의 함수에서 자기 자신을 다시 호출하여 작업을 수행하는 것을 의미하는데욥
왜 굳이 자기 자신을 호출하면서 문제를 해결하는가?
-> 많은 종류의 문제들이 재귀적으로 (recursively) 풀리기 때문
-> 경우에 따라서 재귀 알고리즘 사용시 수월하게 해결 가능( 하노이탑 문제 )
아래는 다양한 문제를 재귀적으로 구현한 것들입니다!
1부터 n까지의 자연수 합
def hap(n):
if n <= 1:
return n
else:
return n + hap(n-1)
1부터 n까지의 자연수 합 (n! 팩토리얼)
def factorial(n):
if n <= 1:
return n
else:
return n * factorial(n - 1)
피보나치 수열
def fibo(n):
if n <=1:
return n
else:
return fibo(n-2) + fibo(n-1)
그렇다면 효율적인가?
-> NO!
-> 일반적인 반복문이 더 효율적임
-> 같은 함수를 여러번 호출하여 계산 -> 비효율적
728x90
'Algorithm' 카테고리의 다른 글
[구름] 정사각형의 개수 Python 풀이 (0) | 2024.07.03 |
---|---|
코딩테스트(coding test)란? (4) | 2024.01.24 |
코린이의 백준 장학금 도전기 - 5주차(마지막 주차) (3) | 2023.08.27 |
코린이의 백준 장학금 도전기 - 4주차 (0) | 2023.08.19 |
소수 찾기 - 에라토스테네스의 체 (0) | 2023.08.16 |