File tree Expand file tree Collapse file tree 2 files changed +69
-0
lines changed
baekjoon/problems/[1003]피보나치 함수 Expand file tree Collapse file tree 2 files changed +69
-0
lines changed Original file line number Diff line number Diff line change 1+
2+ """
3+ 문제 이름: 피보나치 함수
4+ 문제 번호: 1003
5+ 문제 링크: https://www.acmicpc.net/problem/1003
6+ 난이도: Silver III
7+ 태그: 다이나믹 프로그래밍
8+ """
9+ import sys
10+
11+
12+ def input (): return sys .stdin .readline ().rstrip ()
13+
14+
15+ def solve (num : int ) -> tuple :
16+ DP1 = [1 , 0 , 1 ] # 0
17+ DP2 = [0 , 1 , 1 ] # 1
18+
19+ for i in range (3 , num + 1 ):
20+ DP1 .append (DP1 [i - 1 ]+ DP1 [i - 2 ])
21+ DP2 .append (DP2 [i - 1 ]+ DP2 [i - 2 ])
22+
23+ return DP1 [num ], DP2 [num ]
24+
25+ for _ in range (int (input ())):
26+ print (* solve (int (input ())))
Original file line number Diff line number Diff line change 1+ ---
2+ file : " 1003.md"
3+ name : " 피보나치 함수"
4+ src : " https://www.acmicpc.net/problem/1003"
5+ tags :
6+ - 다이나믹 프로그래밍
7+ done : true
8+ draft : false
9+ level : 8
10+ difficulty : " Silver III"
11+ date : 2021-11-06
12+ ---
13+ # 피보나치 함수
14+
15+ ``` text
16+ 0 0
17+ 1 1
18+ 10 2
19+ 101 3
20+ 10110 4
21+ 10110101 5
22+ ```
23+
24+ 규칙을 보자
25+
26+ ``` python
27+ import sys
28+
29+ def input (): return sys.stdin.readline().rstrip()
30+
31+ def solve (num : int ) -> tuple :
32+ DP1 = [1 , 0 , 1 ] # 0
33+ DP2 = [0 , 1 , 1 ] # 1
34+
35+ for i in range (3 , num+ 1 ):
36+ DP1 .append(DP1 [i- 1 ]+ DP1 [i- 2 ])
37+ DP2 .append(DP2 [i- 1 ]+ DP2 [i- 2 ])
38+
39+ return DP1 [num], DP2 [num]
40+
41+ for _ in range (int (input ())):
42+ print (* solve(int (input ())))
43+ ```
You can’t perform that action at this time.
0 commit comments