2193번 이친수

phoenixKim·2022년 8월 12일
0

백준 알고리즘

목록 보기
64/174

점화식

: 문제를 읽어보고 , 맞는지 안맞는지는 모르겠는데,
점화식을 만들어봄.

코드

#include <iostream>
using namespace std;

int main()
{

    //d[자릿수][]
    // 0이 나오면, 0이 나오든 1이 나오든 관계 없음.
    // 뒷자리가 1이 나오면, 다음에는 0이 나와야 함.

    // 뒷자리가 0이 나오면, 다음에는 0 , 1 나와야 함. 
    //d[n][1] += d[n - 1][0]
    //d[n][0] += d[n - 1][0] + d[n - 1][1];

    // 점화식 : n개의 숫자에서 마지막값 j로 끝날때를 갯수? 
    // d[1][0] : 없음.
    // d[1][1] : 1

    // d[2][0] : 1개(10) -> d[1][0] + d[1][1]; : 1
    // d[2][1] : 없음. -> d[1][0] : 0
    // 일단 여기까지는 맞음.

    // d[3][0] : d[2][0] + d[2][1] : 1 + 0 -> 1 ?
    // d[3][1] : d[2][0] : 1?

    int n;
    cin >> n;

    int d[91][2]{0,};

    d[1][0] = 0;
    d[1][1] = 1;

    for(int i = 2; i <= n; ++i)
    { 
        d[i][1] += d[i - 1][0];
        d[i][0] += d[i - 1][0] + d[i - 1][1];   
    }

    int res = d[n][0] + d[n][1];
    cout << res;
    
    //4자리일 경우에는 -> 3개??
    // 1000 1001 1010 
    //for(int i = 0; i <= n; ++i)
    //{
    //    cout << d[i][0] << " " << d[i][1] << endl;
    //}

    //====================

    // 문제에서는 n자리 이친수의 개수를 구하는 것임 
    // 위의 점화식은 n자리에서 뒷자리에 따른 갯수
 }

-> but 이것은 문제에서의 원하는 답이 아님...

profile
🔥🔥🔥

0개의 댓글

관련 채용 정보