#입출력
예제 입력1 :: 10
예제 출력1 :: 55
#문제 해결 방법
dp를 사용하는 것이 최선의 방법.
dp[91]의 배열을 선언한 후(**n은 최대 90까지 값을 가지므로, 91개의 배열을 선언했다.),
dp[0]과 dp[1]을 활용해서, dp[2]를 구하고,
dp[1]과 dp[2]을 활용해서, dp[3]을 구하는 방법으로 입력 값 까지 dp값을 구했다.
dp[90] 값을 구할 때는, 값이 상당히 커진다. (**2880067194370816120)
따라서 dp배열을 long long으로 선언하는 것이 **포인트**였다.
#include <iostream>
using namespace std;
void
fibonacci (int number){
long long dp[91];
dp[0]=0;
dp[1]=1;
for(int i=2; i<=(number + 1);i++){
dp[i] = dp[i-1] + dp[i-2];
}
cout<<dp[number]<<endl;
}
int
main(){
int insert_value;
cin>>insert_value;
fibonacci(insert_value);
return 0;
}
# 20줄 정도의 간단한 코드로 표현할 수 있었다.
#아쉬웠던 점
## 처음에, main함수의 return 값을 1로 하는 바람에, 런타임 에러가 계속 났다.
'algorithm > exercise' 카테고리의 다른 글
[programmers] 기능개발 with JAVA (0) | 2021.07.29 |
---|---|
[programmers] 네트워크 with JAVA (0) | 2021.07.28 |
[programmers] 타켓넘버 with JAVA (0) | 2021.07.21 |
[BOJ 1931] 백준 1931 회의실 배정 - Python (0) | 2021.03.17 |
[BOJ 2583] 백준 2583 영역 구하기 (0) | 2019.11.25 |