[5주차 기본문제 2] 피보나치 수열

BossTeemo·2024년 7월 22일
0

알고리즘스터디

목록 보기
15/19
post-thumbnail
post-custom-banner

문제 설명

피보나치 수열은 0과 1로 시작하며, 그 다음 수부터는 바로 앞 두 수의 합으로 이루어지는 수열입니다. 피보나치 수열은 다음과 같은 점화식으로 정의됩니다:

  • ( F_0 = 0 )
  • ( F_1 = 1 )
  • ( Fn = F{n-1} + F_{n-2} ) (n ≥ 2)

제한 조건

  • ( n )은 45보다 작거나 같은 자연수입니다.

입출력 예

입력출력
00
11
1055

문제 해결 방법

해결 전략

  1. ( n )이 0이면 0을, 1이면 1을 반환합니다.
  2. 2 이상일 경우, 리스트를 이용하여 피보나치 수열을 저장하면서 계산합니다.
  3. 반복문을 통해 2부터 ( n )까지의 피보나치 수를 차례대로 계산하여 리스트에 저장합니다.
  4. ( n )번째 피보나치 수를 반환합니다.

코드 구현

다음은 피보나치 수열의 n번째 값을 계산하는 Python 코드입니다.

def fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1

    fib = [0, 1]
    for i in range(2, n + 1):
        fib.append(fib[i-1] + fib[i-2])
    
    return fib[n]

# 입력을 받습니다.
n = int(input())

# n번째 피보나치 수를 계산하여 출력합니다.
print(fibonacci(n))

코드 설명:

  • fibonacci 함수는 정수 ( n )을 인수로 받습니다.
  • ( n )이 0일 경우 0을, 1일 경우 1을 반환합니다.
  • 2 이상인 경우, 리스트 fib에 피보나치 수열을 저장합니다.
  • 반복문을 통해 2부터 ( n )까지의 피보나치 수를 차례대로 계산하여 리스트에 추가합니다.
  • 최종적으로 리스트 fib의 ( n )번째 요소를 반환합니다.
  • 사용자로부터 입력을 받아 ( n )에 저장한 후, fibonacci 함수를 호출하여 결과를 출력합니다.

예시 테스트

  • 입력: 0

  • 출력: 0

  • 입력: 1

  • 출력: 1

  • 입력: 10

  • 출력: 55

이 코드는 주어진 모든 조건을 만족하며, 각 입력에 대해 올바른 피보나치 수를 출력합니다.


결론

이 문제는 피보나치 수열의 n번째 값을 구하는 알고리즘 문제입니다. 제한 조건이 ( n )이 45 이하로 매우 작기 때문에, 리스트를 사용하여 반복문으로 쉽게 해결할 수 있습니다. 이 문제를 통해 반복문과 리스트를 활용하여 피보나치 수열을 구현하는 방법을 복습할 수 있습니다. 주어진 코드와 전략을 활용하여 문제를 해결할 수 있으며, 이 코드를 백준 온라인 저지에 제출하여 올바르게 작동함을 확인할 수 있습니다.

profile
1인개발자가 되겠다
post-custom-banner

0개의 댓글