코테 대비 python/백준
1003 피보나치 함수
ylab
2023. 3. 9. 10:16
https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
T= int(input())
#for _ in range(T):
#
def fibonum(n):
zero = [1,0,1]
one = [0,1,1]
#n=3 부터 해야하므로
if len(zero) <=n:
for i in range(len(zero),n+1):
zero.append(zero[i-2]+zero[i-1])
one.append(one[i-2]+one[i-1])
return zero[n],one[n]
for i in range(T):
n=int(input())
a,b = fibonum(n)
print(a, b)
"""def fibo(n):
global onecnt, zerocnt
if n==0:
zerocnt+=1
return(0)
elif n==1:
onecnt+=1
return(1)
return fibo(n-1)+fibo(n-2)
for _ in range(T):
onecnt=0
zerocnt=0
n=int(input())
fibo(n)
print(zerocnt, onecnt)
"""
맨첨에 재귀로했다가 틀림 시간초과로
찾아보니 0과 1의 수도 피보나치수로 표현가능
dp는 디피라는 것을 알아차리고 어떻해서든 규칙을 찾는게 중요!!