728x90
SMALL
문제
https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
풀이
다이나믹 프로그래밍을 이용해서 해결했다.
N일때 0의 호출은 N-1의 1의 호출과 동일하다.
import sys
d=[0]*41 # 계산된 결과를 저장하기 위한 DP 테이블
d[1]=1 # 첫 번째 피보니치 수
d[2]=1 # 두 번째 피보나치 수
T = int(sys.stdin.readline())
for _ in range(T):
N = int(sys.stdin.readline())
for i in range(3,N+1): # 3번째 부터 N번째 까지 피보니치 수 계산
d[i]=d[i-1]+d[i-2]
# 0이 호출된 수와 1이 호출된 수 출력
if N==0:
print('1',end=' ')
else:
print(d[N-1],end=' ')
print(d[N])
728x90
LIST
'코테공부 > python 백준' 카테고리의 다른 글
파이썬 백준 1495번 : 기타리스트 (0) | 2024.04.08 |
---|---|
파이썬 백준 11726번: 2Xn 타일링 (0) | 2024.04.07 |
파이썬 백준 12026번: BOJ 거리 (0) | 2024.04.07 |
파이썬 백준 1932번: 정수 삼각형 (0) | 2024.04.07 |
파이썬 백준 11058번: 크리보드 (0) | 2024.04.07 |