전공/백준
1003
yha97
2022. 10. 21. 16:17
날짜 : 2022. 10. 21
사용 언어 : python
문제
코드
import sys
t = int(sys.stdin.readline())
f = [[0, 0] for i in range(41)]
f[0] = [1, 0]
f[1] = [0, 1]
for i in range(2, 41):
f[i][0] = f[i-1][0] + f[i-2][0]
f[i][1] = f[i-1][1] + f[i-2][1]
#print(f)
for _ in range(t):
num = int(sys.stdin.readline())
print(f[num][0], f[num][1])
알게된 점
- 재귀형식의 피보나치 수열로 풀었지만 시간초과가 발생했고 이를 해결하기 위해 단순 for문으로 만들어 풀이했다.
- 마침 최대로 넣을 수 있는 수가 40이라 큰 부담은 없었다.
- 각각 0, 1을 호출했을 때의 수를 저장하는 2차원 리스트를 만들어 풀이했다.
참고 사이트
-