🖥️ 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을 해야 정답이 나온다. 

'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글

#1149번 RGB거리 (C++)  (0) 2020.04.29
#9461번 파도반 수열 (C++)  (0) 2020.04.28
#1003번 피보나치 함수 (C++)  (0) 2020.04.22
#14889번 스타트와 링크 (c++)  (0) 2020.04.21
#14888번 연산자 끼워넣기 (c++)  (0) 2020.04.20