프로그래머스

[프로그래머스] 피보나치 수 (파이썬)

sami355 2023. 3. 30. 16:32

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12945

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

설명

단순 재귀 함수이지만 함정이 존재한다. 파이썬을 연습하는 입장에서 재귀 함수를 연습하는 문제라고 생각을 하고 Fibo()라는 함수를 정의하고 실행 시켰다. 문제에서 주어진 input값들은 정상적으로 동작하지만 문제를 재출하니 몇몇 테스트 케이스에서는 실패라고 나왔다.

몇번이고 나의 코드를 확인하고 그랬지만 오류점을 찾지 못해서 구글링을 했고 파이썬과 JS은 재귀적으로 함수를 호출하는데에 있어서 깊이의 한계가 존재하는 듯 하다. 그렇기에 기존 코드 대신 반복문을 사용해서 풀었다.

https://jireh.tistory.com/14

 

[프로그래머스] 만만할 줄 알았던 피보나치 수 JS

// 테스트케이스 7번 부터 실패한 코드 function solution(n) { if(n===0) return 0; else if(n===1) return 1; else{ return (solution(n-2)+solution(n-1))%1234567; } } 재귀함수 연습하는 문제구나! 라고 생각해서 재귀를 사용해

jireh.tistory.com

 코드

def solution(n):
    return Fibo(n)

def Fibo(n):
    dp = []
    dp = [0 for _ in range(100001)]
    dp[0] = 0
    dp[1] = 1    
    
    for i in range(2, n+1):
        dp[i] = (dp[i-1] + dp[i-2])%1234567
            
    return dp[n]