출처 : 백준, https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
더보기
먼저, 생각해야 할 부분
1. 전형적인 DP 문제인데 해보면 규칙이 나오는 경우.........
풀이
T = int(input())
for _ in range(T):
n = int(input())
dp = [[0 for _ in range(n+1)] for _ in range(2)]
try:
dp[0][0] = 1
dp[1][1] = 1
except:
pass
for i in range(2, n+1):
dp[0][i] = dp[0][i-1] + dp[0][i-2]
dp[1][i] = dp[1][i-1] + dp[1][i-2]
print(dp[0][n], dp[1][n])
시간 복잡도
O(T*N).......으로 표현해도 될까?
알게 된 점
-
고찰
DP 문제를 접근할 때, 규칙이 나올 것 같으면 해보고,
해봤는데 안나오면 바로 전 단계를 생각하자.
Github
'알고리즘 > Python' 카테고리의 다른 글
[python] 백준 11051 - 이항계수 2 (0) | 2022.07.09 |
---|---|
[python] 백준 11727 - 2xn 타일링 2 (0) | 2022.07.09 |
[python] 백준 2839 - 설탕 배달 (0) | 2022.07.06 |
[python] 프로그래머스 - 스킬 트리 (0) | 2022.07.02 |
[python] 프로그래머스 - 여행 경로 (0) | 2022.06.29 |