1003번: 피보나치 함수
import sys
input = sys.stdin.readline
t = int(input())
zero = [1,0,1,1]
one = [0,1,1,2]
for i in range(4,50):
Z = zero[i-1] + zero[i-2]
O = one[i-1] + one[i-2]
zero.append(Z)
one.append(O)
for i in range(t):
n = int(input())
print(zero[n],one[n])
이 문제는 단순히 피보나치 수를 구하는 것이 아닌, N 번째 피보나치 수가 만들어 질 때 까지 0과 1이 얼마나 출력 되는지 알아보는 문제이다.
때문에 zero, one 이라는 리스트를 만들어 i 번째 피보나치 수에 0과 1이 얼마나 출력이 되는지 i 번째 index 에 저장한다.
index 0에서 3까지 미리 리스트에 넣어두고 for 문을 사용해 범위 4부터 50까지의 i 번째 피보나치 수의 0과 1 출력값을 리스트에 저장한다.
(N 이 40보다 작거나 같은 자연수이기에 범위는 range(4, 41)로 잡아도 될 것이다.)
그 후 테스트 케이스 만큼 출력한다.
n = int(input())
P = [0,1,1]
for i in range(1,n+1):
p = P[1]+P[2]
P.append(p)
P.remove(P[0])
print(P[0])
이건 n 번째 피보나치 수를 구하는 코드이다.
(혹시 이게 필요하신 분을 위해서...)
Author And Source
이 문제에 관하여(1003번: 피보나치 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mae03087/1003번-피보나치-함수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)