Breath everything
Home
  • 분류 전체보기 (133)
    • 취미 (29)
    • 영어 (30)
      • Daily 영어표현 (24)
      • TOEIC_OPIC (6)
    • IT (47)
      • 따로 공부 (13)
      • 외부강의 (3)
      • 자료구조 & 알고리즘 (20)
      • 백준 (9)
      • 프로그래머스 (2)
    • 자격증 (5)
    • 기타 (19)
    • 복기 (1)
      • 코딩테스트 (1)
Home
  • 분류 전체보기 (133)
    • 취미 (29)
    • 영어 (30)
      • Daily 영어표현 (24)
      • TOEIC_OPIC (6)
    • IT (47)
      • 따로 공부 (13)
      • 외부강의 (3)
      • 자료구조 & 알고리즘 (20)
      • 백준 (9)
      • 프로그래머스 (2)
    • 자격증 (5)
    • 기타 (19)
    • 복기 (1)
      • 코딩테스트 (1)
블로그 내 검색

Breath everything

이것 저것

  • IT/자료구조 & 알고리즘

    [알고리즘] 재귀 용법(Recursive Call) (Python)

    2021. 8. 4.

    by. ziasu

    반응형

    1. 재귀 용법(Recursive Call)

    • 함수 안에서 동일한 함수를 호출하 형태
    • Python에서는 재귀함수 깊이가 1000회 이하여야 함(Python 자체적으로 고정된 stack공간을 잡아놨기 때문)

     

    2. 일반적인 형태

    • 임의의 입력이 주어진다.
    • 임의의 조건이 주어진다.
    • 입력이 임의의 조건을 충족시킬 때까지 재귀호출이 된다.

     

    3. 코드 구현

    팩토리얼 연산은 조금 식상한 면이 있어서 좀 신박한 예제들을 재귀 용법을 통해 구현해봤다.

     

    3.1 회문(palindrome) 판별기

    def palindrome(input):
        if len(input)<=1:
            return True
        if input[0] == input[-1]:
            return palindrome(input[1:-1])
        else:
            return False

     

     

    3.2 정수 n이 입력으로 주어졌을 때, n을 1,2,3의 합으로 나타낼 수 있는 방법의 가짓수

    • f(n) = f(n-1) + f(n-2) + f(n-3)이란 패턴 도출한 후
    def func(n):
        if n==1:
            return 1
        elif n==2:
            return 2
        elif n==3:
            return 4
        elif n>=4:
            return func(n-1) + func(n-2) + func(n-3)

     

     

     

    반응형
    저작자표시 (새창열림)

    'IT > 자료구조 & 알고리즘' 카테고리의 다른 글

    [알고리즘] 병합정렬(Merge Sort) (Python)  (0) 2021.08.07
    [알고리즘] 퀵 정렬(Quick Sort) (Python)  (0) 2021.08.04
    시간 복잡도(Time Complexity) & 공간 복잡도(Space Complexity)  (0) 2021.07.30
    [알고리즘] 삽입정렬(Insertion Sort) (Python)  (0) 2021.07.29

    댓글

    관련글

    • [알고리즘] 병합정렬(Merge Sort) (Python) 2021.08.07
    • [알고리즘] 퀵 정렬(Quick Sort) (Python) 2021.08.04
    • 시간 복잡도(Time Complexity) & 공간 복잡도(Space Complexity) 2021.07.30
    • [알고리즘] 삽입정렬(Insertion Sort) (Python) 2021.07.29
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
ziasu

티스토리툴바