최근에 발견된 새로운 소 감염병을 국립 수의학 연구소 보건부가 발표했습니다.
질병에 감염된 것으로 확인된 모든 소들은 축산업에 위협을 줄 수 있다고 간주하고, 이로 인해 안락사되었습니다.
감염된 소의 수는 8시간, 9시간, 10시간 후에 각각 21, 34, 55로 증가했습니다.
당신은 이 발병 패턴을 연구하고 국가 당국이 준비하고 대응할 수 있도록 해야 합니다. 따라서 그 이후에 영향을 미칠 소의 수를 예측하기 위한 프로그램을 개발하는 과제를 맡았습니다.
입력은 각각 별도의 줄에 나열됩니다.
각 줄의 수들은 490 이하의 양의 정수로 이루어진 일련의 시간으로 구성됩니다.
-1을 포함하는 줄을 만나면 해당 입력과정은 종료됩니다.
각 입력 값에 대해 출력은 다음 형식으로 작성되어야 합니다.
"Hour X: Y cow(s) affected"
여기서 X는 시간이고 Y는 X 시간에 따라 안락사되어야 하는 전체 감염된 소의 수입니다.
간단한 피보나치 수 문제.
다만 다른 피보나치 수 문제들이 실버5 ~ 브론즈1로 레이팅되어 있는데, 이 아이만 브론즈2로 낮은 레이팅을 받아 왜 그런가 했더니...
입력 범위가 정해져 있었다.
아무튼,
fibo[n] = fibo[n-1] + fibo[n-2]
만 제대로 기억해두면
쉽게 구현할 수 있는 문제.
def fib(n):
if n <= 2:
if n == 0 or n == 1:
return 1
elif n == 2:
return 1
if n > 2:
fibo = [0] * (n+1)
fibo[0] = 1
fibo[1] = 1
fibo[2] = 2
for i in range(3, n+1):
fibo[i] = fibo[i-1] + fibo[i-2]
return fibo[n-1]
while True:
num = int(input())
if num == -1:
break
else:
n = fib(num)
print("Hour %d: %d cow(s) affected" %(num, n))