🖥️ CS/Baekjoon Algorithms
#1904번 01타일 (C++)
한국의 메타몽
2020. 4. 23. 17:31
#include <iostream>
#define MODULE 15746
using namespace std;
int arr[1000001];
int num = 0;
int Find(int x){
if(x<=2) return x;
else if(arr[x]) return arr[x];
return arr[x]= (Find(x-2) + Find(x-1)) % MODULE;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
for(int i=0; i<2; i++) arr[i] = i;
cin >> num;
cout << Find(num)%15746;
return 0;
}
손으로 끄적여본 결과, 피보나치 수열의 공통점과 유사한 식을 가졌던 점이 신기했다.
다만 해당 식을 arr[x] = Find(x-2) + Find(x-1)로 하면 오답이 나오고
arr[2] = Find(x-2) + Find(x-1) % 15746을 해야 정답이 나온다.