티스토리 뷰

'재귀' 란?

자신을 정의할 때 자기 자신을 '재참조'하는 방법

요런 느낌

재귀 알고리즘

  • 정의: 함수를 정의할때 해당 함수를 사용하여 정의하는 방법
  • 장점: 함수가 간단하다, 직관적으로 이해하기 쉽다.
  • 단점: 효율성이 좋지 못하다.
  • 주의할점: 무한반복을 피하기 위해 반드시 종결지점을 만들어 주어야 한다.

문제(피보나치 수열)

인자로 0 또는 양의 정수인 x 가 주어질 때, Fibonacci 순열의 해당 값을 구하여 반환하는 함수 solution() 을 완성하세요.

Fibonacci 순열은 아래와 같이 정의됩니다.
F0 = 0
F1 = 1
Fn = Fn - 1 + Fn - 2, n >= 2

 

문제풀이(1) - 재귀적 방법

def solution(x):
    answer = 0
    if x == 0:
        answer = 0
    elif x ==1:
        answer = 1
    else:
        answer = solution(x-1) + solution(x-2)
    return answer

문제풀이(2) - 반복문

def solution(x):
    answer = 0
    f = [0,1]
    if x >= 2:
        n = 2
        while n <= x:
            a = f[n-1] + f[n-2]
            f.append(a)
            n = n+1
    answer = f[x]
    return answer

끝.

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함