초코레

[알고리즘 개념정리] 재귀 본문

알고리즘

[알고리즘 개념정리] 재귀

초코레 2019. 6. 7. 12:44
  • 함수가 자기 자신을 호출하는 것
  • 재귀 함수는 기본 단계와 재귀 단계로 나누어져 있다.
  • 기본 단계 : 무한 반복으로 빠져들지 않게 하는 부분
  • 재귀 단계 : 자기 자신을 호출하는 부분

상자 안에서 열쇠를 찾는 코드를 의사코드로 나타내기

※ 의사코드 : 문제와 풀이 방법을 간단한 코드 형태로 설명한 것

  • while 반복문을 사용한 경우
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 "열쇠를 찾았어요!"
  • 재귀를 사용한 경우
def look_for_key(box):
  for item in box:
      if item.is_a_box():
          look_for_key(item)
      elif item.is_a_key():
          print "열쇠를 찾았어요!"
재귀를 사용해 팩토리얼 함수 구현하기
def fact(x):
    if x == 1:
        return 1
    else:
        return x * fact(x-1)

def main():
    print(fact(5))

if __name__ == "__main__":
    main()

'알고리즘' 카테고리의 다른 글

선형 검색(linear search)  (0) 2019.12.21
기본 자료구조  (0) 2019.12.20
기본 알고리즘  (0) 2019.12.19
[알고리즘 개념정리] 퀵 정렬  (0) 2019.06.08
[알고리즘 개념정리] 선택정렬  (0) 2019.06.03