관리 메뉴

솜씨좋은장씨

[BaekJoon] 24416번 : 알고리즘 수업 - 피보나치 수 1 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 24416번 : 알고리즘 수업 - 피보나치 수 1 (Python)

솜씨좋은장씨 2022. 8. 16. 11:47
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 알고리즘 수업 - 피보나치 수 1 입니다.

 

24416번: 알고리즘 수업 - 피보나치 수 1

오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍

www.acmicpc.net

👨🏻‍💻 코드 ( Solution )

Python3 제출 시 재귀함수에서 시간 초과 -> PyPy3 로 제출

def fibo_recursive_func(n):
    global recursive_num
    recursive_num += 1
    if n == 1 or n == 2:
        recursive_num -= 1
        return 1
    else:
        return fibo_recursive_func(n - 1) + fibo_recursive_func(n - 2)


def fibo_dynamic_func(n):
    func_exec_num = 0
    fibo_list = [0, 1, 1]
    
    for idx in range(3, n + 1):
        fibo_list.append(fibo_list[idx-1] + fibo_list[idx-2])
        func_exec_num += 1
    return func_exec_num


if __name__ == "__main__":
    n = int(input())
    
    recursive_num = 0
    
    fibo_recursive_func(n)
    dynamic_num = fibo_dynamic_func(n)
    
    print(recursive_num+1, dynamic_num)
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments