문제해결(PS)/ROSALIND

Mortal Fibonacci Rabbits(수명이 있는 피보나치 토끼들)

곰탱이장 2024. 7. 27. 11:02

https://rosalind.info/problems/fibd/

 

ROSALIND | Mortal Fibonacci Rabbits

It appears that your browser has JavaScript disabled. Rosalind requires your browser to be JavaScript enabled. Mortal Fibonacci Rabbits solved by 12965 Wabbit Season Figure 1. A c.1905 photo from Australia of a cart loaded to the hilt with rabbit skins. Fi

rosalind.info

 이 문제는 피보나치 토끼의 응용 문제이다. 이 문제는 토끼의 수명이 m달로 한정되어 있다. 태어난 첫달은 새끼인 상태라 생식이 불가하다. 그러니 한쌍의 토끼는 총 m달 동안 살고 m-1번 생식을 한다. 그림으로 요약하자면

 토끼를 나이별로 나눠서 다음 세대에 어떻게 영향을 끼칠지를 코딩으로 나타내면 된다.

months,lifetime = map(int,input().split())
nowG=[0 for _ in range(lifetime)]
nowG[0]=1#첫 달

for _ in range(months-1):#m-1달 동안 반복
    nextG=[0 for _ in range(lifetime)]
    for i in range(lifetime):
        if i!=0:#새끼가 아니라면 생식
            nextG[0]=nextG[0]+nowG[i]
        if i!=lifetime-1:#m살이 아니라면 나이가 들음
            nextG[i+1]=nowG[i]
    nowG = nextG
print(sum(nowG))