코딩테스트 기록/01. 알고리즘

알고리즘 - 재귀란?

박세류 2023. 11. 17. 21:48

❗ 학습 키워드


코드 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