Published:
Updated:

  • λ¬Έμ œμ— 정닡이 거의 λ‚˜μ™€ μžˆμ–΄μ„œ 이지인 λ“―


SolutionPermalink

import collections


class Solution:

    dp = collections.defaultdict(int)

    def fib(self, n: int) -> int:
        # ν”Όλ³΄λ‚˜μΉ˜ μ •μ˜: n >= 2
        if n <= 1:
            return n

        # dp[n]이 μ‘΄μž¬ν•  λ•ŒλŠ” κ·Έλƒ₯ 리턴
        if self.dp[n]:
            return self.dp[n]

        # dp[n]이 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 값이라면
        # κ³„μ‚°ν•œ 값을 dp[n]에 μ €μž₯ν•΄λ‘ 
        self.dp[n] = self.fib(n - 1) + self.fib(n - 2)
        # 그리고 λ°”λ‘œ 리턴
        return self.dp[n]


ReferencePermalink

Leave a comment