함수 호출의 원리

# 결과값이 어떻게 될까요 ?
def func_C() :
	print('C1')
	print('C2')

def func_B():
	print('B1')
	func_C()
	print('B2')

def func_A():
	print('A1')
	func_B()
	print('A2')

func_A()
#  기본재귀함수 활용
# <https://pythontutor.com/visualize.html#mode=edit>
# 위 링크에서 아래 코드 입력하고 순서 확인
def sum_list(num):
    if num ==1 : # BASE CASE
        return 1
    else :
        return num + sum_list(num-1)
        
print(sum_list(5))

visualising data structures and algorithms through animation - VisuAlgo

2630번: 색종이 만들기

반드시 알아야하는 알고리즘 top 8 - 1. 재귀 알고리즘

재귀

재귀의 장단점

# 여러가지 문제 해결법 : 1부터 주어진 숫자까지 모두 더하는 함수

# 가우스 공식을 이용한 코드
def sum1(num):
	return num*(num+1)/2

# 반복문을 이용한 코드
def sum2(num):
	total = 0
	for num in range(num+1):
		total += num
	return total

# 재귀함수 : 하고자 하는 바가 명확하게 드러난다.
def sum3(num):
	if num == 1 :
		return 1
	else :
		return num+ sum3(num-1)

print(sum1(10))
print(sum2(10))
print(sum3(10))
# 재귀 예시 1: 팩토리얼
def factorial(n):
	if n == 1 : #base case
		return 1
	else:
		return n * factorial(n-1)

# 재귀 예시 2 : 2단 출력
def multi_table_2(n):
	if n == 0:
		print('구구단 2단')
	else:
		multi_table_2(n-1)
		print(f'2 * {n} = {2*n}')

print(multi_table(9))

트리