프로그래머스 - 피보나치 수

Dean_Kang·2021년 7월 1일
0

프로그래머스

목록 보기
4/21

문제

n번째 피보나치 수를 1234567로 나눈 나머지 값을 반환하라는 문제인데 나는 보자마자 재귀식이 생각나서 함수를 만들어서 호출했다.

코드1

def solution(n):
    answer = fib(n) % 1234567
    return answer


def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    return fib(n - 1) + fib(n - 2)

근데 이게 n값이 작으면 정답인데 테스트케이스를 돌려보니 n값이 커지면 시간초과와 recursion오류가 나서 반복문으로 변경해서 해결했다.

코드2

def solution(n):
    fib0 = 0
    fib1 = 1
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        for i in range(n):
            tmp = fib0 + fib1
            fib0, fib1 = fib1, tmp

        answer = fib0 %1234567
    return answer
profile
for the goal

0개의 댓글

관련 채용 정보