백준 알고리즘 No.10870 피보나치 수 5
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.
이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.
n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다.
출력
첫째 줄에 n번째 피보나치 수를 출력한다.
체감 난이도: ★
이 문제는 소수 문제 정도의 난이도였다. 굉장히 쉽게 풀렸던 문제..
Code
num = int(input())
f_list = [0, 1] # 0번째, 1번째 피보나치 수는 미리 넣어둠
for i in range(2, num+1):
new = f_list[i-1] + f_list[i-2] # 피보나치 공식
f_list.append(new)
print(f_list[num]) # n번째 피보나치 수 출력
Solution
피보나치 공식을 활용해 다음 피보나치 수를 리스트에 추가하는 것을 반복하여 “수열”을 만든 다음,
입력받은 num번 요소를 출력 (0번째 피보나치 수와 1번째 피보나치 수는 미리 리스트에 넣어두었다.)
✔append(x)
vs extend(iterable)
append
와extend
는 리스트에 요소를 추가하는 파이썬 리스트 메서드append
는 x 하나의 요소를 추가extend
는 다른 리스트의 모든 요소를 현재 리스트에 개별적으로 추가
# append(x)
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.append(list2)
print(list1)
>> [1, 2, 3, [4, 5, 6]]
# extend(iterable)
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1)
>> [1, 2, 3, 4, 5, 6]
혹시 더 좋은 알고리즘 풀이가 있다면 언제든 댓글로 알려주세요 😃