재귀호출: 무한 자기자신으로 돌아옴
factorial
1!=1 #basecase 호출이 끝날 수 있는 제약조건
2!=2*1 =2
3!=3*2*1 = 3*2! =6
4!=4*3*2*1 =4*3! =24
5!=5*4*3*2*1 =5*4! =120
6의 팩토리얼? 6*(6-1)!
n의 팩토리얼? n*(n-1)!
n!=n*(n-1)!
def fact(n):
if n==1:return 1
return n*fact(n-1)
print(fact(4)) #24
def ONE():
print("첫번째")
TWO() #함수호출
print("다섯번째")
def TWO():
print("두번째")
THREE() #함수호출
print("네번째") # 끝나고 stack에 보관되어있던 ONE()으로 이동 pop()
def THREE():
print("세번째") #끝나고 stack 에 보관되어있던 TWO()로 이동 pop()
ONE()
#첫번째
#두번째
#세번째
#네번째
#다섯번째
def Solve(count): #count를 1씩 줄여가며 0이 나올때 까지 반복
if count==0:return
print("재귀호출",count)
Solve(count-1)
Solve(3)
#재귀호출 3
#재귀호출 2
#재귀호출 1
def Solve(count):
if count==0:return
Solve(count-1) #순서 변경 count가 0이 되고 다시 재귀호출하여 1부터 3까지 호출
print("재귀호출",count)
Solve(3)
#재귀호출 1
#재귀호출 2
#재귀호출 3
'취준일기' 카테고리의 다른 글
[TIL_알고리즘] 정보올림피아드 1894 : 계단 오르기 2 (0) | 2020.11.18 |
---|---|
[TIL_알고리즘] 하노이 타워(Hanoi towers)와 피보나치 (Fibonacci Number) (0) | 2020.11.17 |
[TIL_알고리즘] 완전 탐색 DFS(Depth First Search) (0) | 2020.11.15 |
[TIL_알고리즘] DFS BFS 그래프 기초 (0) | 2020.11.14 |
[TIL_알고리즘] 정렬 알고리즘 Counting Sort (0) | 2020.11.13 |