728x90
동적 계획법으로 풀었다.
규칙이 있다.
2 x n을 채우는 방법의 수 = 2 x (n - 1)을 채우는 방법의 수 + 2 x (n - 2)를 채우는 방법의 수이다.
int의 범위를 벗어날 수 있으니 애초에 저장할 때 10007로 나눈 나머지를 저장해주었다.
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int* arr = new int[n];
arr[0] = 1;
arr[1] = 2;
for (int i = 2; i < n; i++) {
arr[i] = (arr[i - 1] + arr[i - 2]) % 10007;
}
cout << arr[n - 1];
return 0;
}
728x90
'알고리즘 문제' 카테고리의 다른 글
[백준] 1085번 직사각형에서 탈출 (0) | 2020.02.02 |
---|---|
[백준] 10250번 ACM 호텔 (0) | 2020.02.01 |
[백준] 10844번 쉬운 계단 수 (0) | 2020.01.31 |
[백준] 2292번 벌집 (0) | 2020.01.31 |
[백준] 2193번 이친수 (0) | 2020.01.31 |