[DP/동적계획법] 백준 14495 피보나치 비스무리한 수열 - 파이썬(Python)
[ Contents ] 1. 문제 (링크 참조) 14495번: 피보나치 비스무리한 수열 피보나치 비스무리한 수열은 f(n) = f(n-1) + f(n-3)인 수열이다. f(1) = f(2) = f(3) = 1이며 피보나치 비스무리한 수열을 나열하면 다음과 같다. 1, 1, 1, 2, 3, 4, 6, 9, 13, 19, ... 자연수 n을 입력받아 n번째 피보 www.acmicpc.net 2. 문제 풀이 f(n) = f(n-1) + f(n-3) 피보나치 수열 f(n) = f(n-1) + f(n-2)와 달리, f(n-3)이 들어간 수열입니다. 피보나치 수열과 마찬가지로, 점화식만 수정해서 DP로 구현합니다. 3. 코드 # 입력 n = int(input()) # DP cache = [1, 1, 1] for i..
2022. 8. 31.
[DP/동적계획법] 백준 1788 피보나치 수의 확장 - 파이썬(Python)
[ Contents ] 1. 문제 (링크 참조) 1788번: 피보나치 수의 확장 첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절댓값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절댓값을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 2. 문제 풀이 피보나치의 '음수 부분'을 구하는 문제입니다. 본래, 피보나치는 n = 2부터 시작하죠. n = 1일 때, f(1) = f(0) + f(-1) 이므로 f(-1) = f(1) - f(0) = 1 피보나치의 정의를 역이용하면, f(-1)도 구할 수 있습니다. 즉, 음수 부분을 구할 때에는 조금 식이 달라집니다. f(n-2) = f(n) - f(n-1) f(-1) = f(1..
2022. 8. 30.