728x90
반응형
https://www.acmicpc.net/problem/1788
1788번: 피보나치 수의 확장
첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절댓값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절댓값을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
문제해결
- |n| >1 일 때 F[n] = F[n-1] + F[n-2] 를 이용해서 새로운 수를 F 리스트에 넣는다.
- n을 음수로 확장시켰으 때 놀라운 규칙을 알면 끝이다.
CODE
n = int(input())
s = [0, 1]
for i in range(2, abs(n) + 1):
s.append((s[i - 1] + s[i - 2]) % 1000000000)
if n % 2 == 0 and n < 0:
print(-1)
elif n == 0:
print(0)
else:
print(1)
print(s[abs(n)])
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 1941 소문난 칠공주 (0) | 2023.04.18 |
---|---|
[python] 백준 2482 색상환 (0) | 2023.04.18 |
[python] 백준 2240 자두나무 (0) | 2023.04.17 |
[python] 백준 2229 조 짜기 (0) | 2023.04.16 |
[python] 백준 15486 퇴사2 (0) | 2023.04.16 |
댓글