http://www.yes24.com/Product/Goods/74269975
용어 정리
재귀 함수
: 재귀 함수를 설명 하기 전에 팩토이얼을 알아본다.
팩토리얼은 앞에 있는 숫자와 뒤에 있는 값을 더해서 다음 숫자를 구하는 연산이다.
팩토리얼을 구하는 방법은 2가지가 있다.
1) 반복문으로 팩토리얼 구하기
2) 재귀 함수로 팩토리얼 구하기
재귀 함수의 문제
: 상황에 따라 같은 것을 기하급수적으로 많이 반복하는 문제점이 있음
이 문제를 해결하기 위해 메모화 기술을 사용
다른 재귀함수로는 피보나치 수열이 있다.
- 처음에는 토끼가 한 쌍만 존재한다.
- 두 달 이상 된 토끼는 번식 할 수 있다.
- 번식한 토끼는 매달 새끼를 한쌍씩 낳는다.
- 토끼는 죽지 않는다.
- 재귀 함수로 구현한 피보나치 수열
재귀함수를 사용하면 매개변수로 들어오는 값이 클 수록 덧셈 횟수가 기하 급수적으로 늘어나는 문제가 생긴다.
- 그림과 같은 형태 : 트리
- 트리에 있는 각각의 지점 : 노드
- 노드 중에 가장 마지막 단계의 노드 : 리프
트리 내부에 있는 각각의 노드 값을 계산하려면 덧셈을 한번씩 해야 하는 데
노드가 한번에 두개씩 달려있기 때문에 한 번 구한 값은 그것으로 계산이 끝나지 않고 현재 코드의 재귀 함수로 인해
한번 구했던 값이라도 처음부터 다시 계산해야 합니다. 그렇기 때문에 계산 횟수가 기하급수적으로 늘어나게 됩니다.
참조 & global 키워드
- 파이썬은 함수내부에서 함수 외부에 있는 변수를 참조하지 못합니다. (변수에 접근하는 것을 참조라고 한다.)
- 함수 내부에서 함수 외부에 있는 변수를 참조 할 때는 global 키워드를 사용한다.
- global 키워드는파이썬 프로그래밍 언어에만 있는 특이한 구조이다.
global 변수 이름
메모화
: 딕셔너리를 사용해서 한 번 처리한 값을 저장합니다. -> 메모
딕셔너리에 값이 메모되어 있으면 처리를 수행하지 않고 곧바로 메모된 값을 돌려주면서 코드의 속도를 빠르게 만든다.
메모화를 사용하면 실행 후 곧바로 결과를 출력할 정도로 속도가 빨라진다.
조기 리턴
: 호출 중간에 return 키워드를 사용하면 조기 리턴 할 수 있다.
코드에 이름 붙이기
: 코드의 가독성을 올리기 위해서는 주석을 사용해서 코드의 이름을 붙여주는 것이 좋다.
그렇다고 너무 주석을 난무해서도 안된다.
'프레임워크 > Python' 카테고리의 다른 글
[Python] 함수 만들기 (0) | 2021.10.30 |
---|---|
[Python] 문자열, 리스트, 딕셔너리와 관련된 기본 함수 (0) | 2021.10.29 |
[Python] 반복문과 while 반복문 (0) | 2021.10.29 |
[Python] 딕셔너리와 반복문 (0) | 2021.10.29 |
[Python] 리스트와 반복문 (0) | 2021.10.29 |
댓글