한 걸음씩
[백준][python] 10870 피보나치 수 5 본문
https://www.acmicpc.net/problem/10870
10870번: 피보나치 수 5
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
풀이 과정
1. 입력받은 수가 10이라고 가정하면 0~10까지 리스트에 저장
2. for문을 num 리스트로 돌려서 나오는 값이 0과 1이라면 바로 fib리스트에 저장하고
3. 나오는 값이 2 이상이라면 fib에 먼저 들어간 0과 1의 값을 더해서 복리처럼 계산해주면 되는데
i = 5 라면 5의 피보나치 수는 5이다. f4 + f3 즉 2 + 3 [0, 1, 1, 2, 3, 5,....]
4. 3번의 과정을 n만큼 반복하고 인덱싱을 통해서 -1 위치를 출력하면 끝
n = int(input())
num = [i for i in range(n+1)]
fib = []
for i in num:
if i == 0:
fib.append(i)
elif i == 1:
fib.append(i)
elif i >= 2:
fib.append(fib[i-1] + fib[i-2])
print(fib[-1])
리뷰
피보나치 수가 뭔지 몰라서 [0,1,2,3,4,5,6,7,8,9,10] 이렇게 있을 때 해당 값의 한 칸 앞과 두 칸 앞의 합을 구하는 건 줄 알았는데
그때그때 생성되는 수의 합을 구하는 게 피보나치 수였다
규칙만 이해하면 어려운 문제는 아니다
'BOJ' 카테고리의 다른 글
[백준][python] 1427 소트인사이드 (0) | 2023.02.15 |
---|---|
[백준][python] 2587 대표값2 (0) | 2023.02.15 |
[백준][python] 2240 별 찍기 - 3 (0) | 2023.02.14 |
[백준][python] 25305 커트라인 (0) | 2023.02.13 |
[백준][python] 2588 곱셈 (0) | 2023.02.12 |