728x90
반응형

기본적인 다이나믹 프로그래밍 문제이다.
EX) 입력이 3일 때, 1의 결과 (0, 1)과 2의 결과 (1, 1)을 더한 (1, 2)가 답이다.
피보나치수열의 2차원 버전이 아닐까 라는 생각이 든다.
리스트를 그대로 출력하면 오답이니 인자들만 꺼내 주는 *를 사용하도록 하자
def s(a, b):
t1 = a[0] + b[0]
t2 = a[1] + b[1]
return [t1, t2]
for _ in range(int(input())):
a, b = [0, 1], [1, 0]
n = int(input())
if n == 0:
print(*b)
elif n == 1:
print(*a)
else:
for i in range(n-1):
a, b = s(a, b), a
print(*a)
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 1008번 A/B(python) (0) | 2020.01.23 |
---|---|
백준 알고리즘 1004번 어린 왕자(python) (0) | 2020.01.23 |
백준 알고리즘 1002번 터렛(python) (0) | 2020.01.23 |
백준 알고리즘 1001번 A-B(python) (0) | 2020.01.23 |
백준 알고리즘 1000번 A+B(python) (0) | 2020.01.23 |