반응형
문제
풀이
아래에 첨부한 2747번 문제와 같은 방식으로 풀이했다.
두 문제의 차이점은 n의 범위이다.
2747번 문제는 n의 최댓값이 45이지만, 이 문제는 90이기 때문에 DP를 int 형으로 선언하면 오류가 발생한다.
n = 90일 때, 피보나치 수는 288,0067,1943,7081,6120이기 때문에, DP를 long long 형으로 선언했다.
int 형의 범위는 -2,147,483,648 ~ 2,147,483,647이며,
long long의 범위는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807이다.
코드
#include <iostream>
using namespace std;
int main() {
int n;
long long DP[90];
cin >> n;
DP[0] = 0;
DP[1] = 1;
for (int i = 2; i <= n; i++) {
DP[i] = DP[i - 1] + DP[i - 2];
}
cout << DP[n] << endl;
}
결과
반응형
'Programming > C++ - 백준' 카테고리의 다른 글
[백준] 27866번 : 문자와 문자열 (C++) (0) | 2024.02.20 |
---|---|
[백준] 2839번 : 설탕 배달- Greedy Algorithm (C++) (3) | 2023.05.25 |
[백준] 2747번 : 피보나치 수 - (C++) (1) | 2023.05.24 |
[백준] 2775번 : 부녀회장이 될테야 - (C++) (2) | 2023.05.24 |
[백준] 1546번 : 평균 - (C++) (2) | 2023.05.16 |
댓글