https://www.acmicpc.net/problem/1788
1788번: 피보나치 수의 확장
첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절댓값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절댓값을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
풀이
다이나믹 프로그래밍을 통해서 문제를 풀어주었습니다.
코드
# 1788번 피보나치 수의 확장
n = int(input())
dp = [0, 1, 1]
for i in range(3, abs(n)+1):
dp.append((dp[i-2] + dp[i-1])%1000000000)
if n > 0:
print(1, dp[-1], sep="\n")
elif n < 0:
if n % 2 == 0:
sign = -1
else:
sign = 1
print(sign, dp[-1], sep="\n")
else:
print(0, 0)
출력결과
'백준 > 다이내믹 프로그래밍' 카테고리의 다른 글
[백준][Python] 1135번 뉴스 전하기 - 골드 2 (0) | 2024.05.15 |
---|---|
[백준][Python] 9084번 동전 - 코팩 (0) | 2024.01.04 |
[백준][Python] 10826번 피보나치 수 4 - 코팩 (0) | 2023.08.30 |
[백준][Python] 17175번 피보나치는 지겨웡~ - 코팩 (0) | 2023.08.30 |
[백준][Python] 7579번 앱 - 코팩 (0) | 2023.08.25 |