Fibonacci Number

제로콜라좋아요·2024년 6월 8일
0

algorithem

목록 보기
20/37

문제설명

피보나치 수는 일반적으로 F(n)으로 표기되며, 각 숫자가 0과 1에서 시작하여 두 이전 숫자의 합이 되는 수열을 형성합니다. 즉, 다음과 같습니다:

F(0) = 0, F(1) = 1
F(n) = F(n - 1) + F(n - 2), n > 1 인 경우.
주어진 n에 대해 F(n)을 계산하세요.

예시 1:

Input: n = 2
Output: 1
Explanation: F(2) = F(1) + F(0) = 1 + 0 = 1.

예시 2:

Input: n = 3
Output: 2
Explanation: F(3) = F(2) + F(1) = 1 + 1 = 2.

예시 3:

Input: n = 4
Output: 3
Explanation: F(4) = F(3) + F(2) = 2 + 1 = 3.

제약

0 <= n <= 30

문제해설

class Solution:
    def fib(self, n: int) -> int:
        if n == 0:
            return 0
        elif n == 1:
            return 1
        
        a, b = 0, 1
        for _ in range(2, n + 1):
            a, b = b, a + b
        return b

<내 코드의 흐름>

  1. fib라는 이름의 메서드를 정의합니다. 이 메서드는 n이라는 정수를 입력받고 정수를 반환합니다. self는 클래스의 인스턴스를 참조합니다.
  2. n이 0인지 확인합니다.
  3. n이 0이면 0을 반환합니다. 이는 Fibonacci 수열에서 F(0)=0이기 때문입니다.
  4. n이 1인지 확인합니다.
  5. n이 1이면 1을 반환합니다. 이는 Fibonacci 수열에서 F(1)=1이기 때문입니다.
  6. a와 b를 각각 0과 1로 초기화합니다. 이는 F(0)와 F(1)에 해당합니다.
  7. 2부터 n까지 반복합니다. _는 반복 변수로, 실제로 사용되지 않음을 의미합니다.
  8. a를 현재 b로, b를 현재 a와 b의 합으로 업데이트합니다.
  • 이는 𝐹(𝑛) = 𝐹(𝑛−1)+𝐹(𝑛−2)F(n)=F(n−1)+F(n−2)을 계산하는 과정입니다.
  1. n번째 Fibonacci 수를 반환합니다. b는 마지막 반복 후 F(n)의 값을 가지게 됩니다.
profile
개발자계의 제로콜라

0개의 댓글