9. 피보나치 수
Algorithm - Level 2
- 풀이
1. 피보나치 수도 이전의 수에 영향을 받는다.
-> Dynamic programming 점화식 이용.
2. int형의 범위를 초과할 수 있다. && 2 이상의 수가 입력되면 1234567로 나눈 나머지를 구한다.
-> modular 연산은 수들을 다 더한 후 나머지를 구하나, 먼저 나머지를 구한 후 덧셈한 것이 결과가 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <string> #include <vector> using namespace std; int solution(int n) { int answer = 0; int dp[n+1]; if(n==1) return 1; dp[0] = 0; dp[1] = 1; for(int i=2; i<n+1; i++){ dp[i] = (dp[i-1] + dp[i-2]) % 1234567; } answer = dp[n]; return answer; } | cs |
'Study > Algorithm' 카테고리의 다른 글
[Level 2] 11. JadenCase (0) | 2018.07.30 |
---|---|
[Level 2] 10. 행렬의 곱셈 (0) | 2018.07.28 |
[Level 2] 8. 최소값 만들기 (0) | 2018.07.26 |
[Level 2] 7. 최대값과 최소값 (0) | 2018.07.24 |
[Level 2] 6. 숫자의 표현 (0) | 2018.07.23 |