https://www.acmicpc.net/problem/1003
import sys
input = sys.stdin.readline
for _ in range(int(input())):
cnt0 = [1, 0]
cnt1 = [0, 1]
N = int(input())
for i in range(2, N+1):
cnt0.append(cnt0[i-2] + cnt0[i-1])
cnt1.append(cnt1[i-2] + cnt1[i-1])
print(cnt0[N], cnt1[N])
fibonacci(i)
에서 출력되는 0의 개수, 1의 개수를 저장하는 두 개의 리스트가 필요하다는 것을 깨달으면 쉽게 구현할 수 있다.for _ in range(int(input()):
a, b = 1, 0
for i in range(int(input())):
a, b = b, a+b
print(a, b)
index: 0 1 2 3 4 5 ...
cnt_0: 1 0 1 1 2 3 ...
cnt_1: 0 1 1 2 3 5 ...
쿨하고 섹시하다,, 왜 저 간단한 규칙이 내 눈엔 안보였을까?
ℬℴ𝓃𝒶𝒸𝒸𝒾 한서