문제

[프로그래머스] 피보나치 수 (LV. 2)

요약

  • n번째 피보나치 수를 1234567로 나눈 나머지를 반환하자.
  • 피보나치 수를 다이나믹 프로그래밍으로 다루자.

분류

  • 다이나믹 프로그래밍

풀이

1. 리스트

  • 리스트를 사용하기 때문에, 시간적으로도 공간적으로도 불리하다.
def solution(n):
    arr = [0, 1]

    for _ in range(2, n + 1):
        arr.append(arr[-1] + arr[-2])

    return arr[-1] % 1234567

2. 파이썬 언패킹

def solution(n):

    a, b = 0, 1

    for _ in range(2, n + 1):
        a, b = b, a + b

    return b % 1234567