본문 바로가기
Algorithm/구현

[Python3] 백준 10870번 피보나치 수 5

by HANNI하니 2021. 12. 31.

try 3 times / 난이도 : ★(난이도는 제가 느끼는 매우 주관적인 난이도입니다.)

문제 확인

 

10870번: 피보나치 수 5

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net

코드 깃허브 확인

 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

정답 해설

n = int(input())
fibonacci = [0,1]

# 리스트 중 가장 오른쪽 두 숫자를 계속 더하는 for문
for i in range(2,n+1):
    num = fibonacci[i-1] + fibonacci[i-2]
    fibonacci.append(num)

# for문의 가장 마지막 n -> n-1번째와 n-2번째 더한 값 = 리스트의 n번째 값
print(fibonacci[n])

 

공부한 내용

1.  피보나치 수열 이해하기 + 풀이 해석

피보나치 수열 이해하기

 

코드 해설

 

2. 다른 풀이 이해하기

자기 자신을 호출하는 재귀함수 사용법

다른 풀이법에 대부분이 이런 형태로 했다.

0과 1은 피보나치 수열 규칙에서 예외이므로 따로 if 조건문을 지정해줬고,

나머지 값에 대하여 재귀함수를 return해준다.

n = int(input())
# 재귀함수
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(n))

재귀 함수 설명

 

백준 10870 [파이썬] 피보나치 수5

[Python] 백준 알고리즘 온라인 저지 10870번 피보나치 수 5 Python3 코드 1) 재귀 함수 코드 def fibonacci(n): if n <= 1: return n return fibonacci(n-1) + fibonacci(n-2) n = int(input()) print(fibonacci(..

ooyoung.tistory.com

 


레퍼런스

  • 풀이 설명
 

백준 10870 [파이썬] 피보나치 수5

[Python] 백준 알고리즘 온라인 저지 10870번 피보나치 수 5 Python3 코드 1) 재귀 함수 코드 def fibonacci(n): if n <= 1: return n return fibonacci(n-1) + fibonacci(n-2) n = int(input()) print(fibonacci(..

ooyoung.tistory.com

관련 문제(문제가 같음..?)

    • 2747번 피보나치 수

https://github.com/yyeongeun/codingtest/blob/main/BAEKJOON/2747_%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98%EC%88%98.py

    • 10826번 피보나치 수 4

https://github.com/yyeongeun/codingtest/blob/main/BAEKJOON/10826_%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98%EC%88%984.py

댓글