❗ 학습 키워드
코드 1
def look_for_key(main_box):
pile = main_box.make_a_pile_to_look_through()
while pile is not empty:
box = pile.grab_a_box()
for item in box:
if item.is_a_box():
pile.append(item)
elif item.is_a_key():
print("열쇠를 찾았어요!")
코드 2
def look_for_key(box):
for item in box:
if item.is_a_box():
look_for_key(item)
elif item.is_a_key():
print("열쇠를 찾았어요!")
이 코드들은 같은 일을 하는 함수를 구현한 것이다.
함수 1은 반복문으로 구현 한 것이고 함수 2는 재귀로 구현한 것이다. 이처럼 재귀는 반복문으로 표현할 수 있지만, 코드와 풀이를 명확하게 만들어 준다. (성능이 더 나아지진 않는다.)
하지만, 재귀로 풀면 보기 좋고, 재귀로 하지 않으면 엄~청 복잡해지는 문제도 많기 떄문에 그럴경우에 재귀를 사용하는 것이 좋다.
📝새로 배운 개념
재귀 함수를 만들 때는 언제 멈출지 알려줘야 한다.
- 모든 재귀 함수는 기본 단계와 재귀 단계가 있다.
- 기본 단계는 자신을 호출하지 않는 경우이다.
728x90