반응형
알고리즘 분류
- 다이나믹 프로그래밍
SOLUTION
import sys
zero = [1,0] # 0이 출력되는 횟수
one = [0,1] # 1이 출력되는 횟수
# 피보나치는 구하려는 수의 한단계 전과 두단계 전 수의 합이므로, 0 과 1의 개수도 한단계 전과 두단계 전에서 나오는 개수를 더하면 된다
for i in range(2,41):
zero.append(zero[i-1] + zero[i-2])
one.append(one[i-1] + one[i-2])
T = int(sys.stdin.readline())
for _ in range(T):
N = int(sys.stdin.readline())
print(zero[N], one[N])
'코딩테스트 대비 > 단계별 코딩 테스트 준비(27일 과정)' 카테고리의 다른 글
[분할 정복/Python] 1992번: 쿼드트리 - 효과는 굉장했다! (0) | 2022.02.19 |
---|---|
[다이나믹 프로그래밍/Python] 2579번: 계단 오르기 - 효과는 굉장했다! (0) | 2022.02.19 |
[그리디 알고리즘/Python] 1931번: 회의실 배정 - 효과는 굉장했다! (0) | 2022.02.19 |
[그리디 알고리즘/Python] 13305번: 주유소 - 효과는 굉장했다! (0) | 2022.02.19 |
[백트래킹/Python] 14888번: 연산자 끼워넣기 - 효과는 굉장했다! (0) | 2022.02.19 |