본문 바로가기
이론/코딩테스트

[백준] 1010번 다리놓기 (동적 계획법/Dynamic Programming)

by 퇴근후개발 2022. 7. 28.
반응형

-문제

-코드

조합을 이용한 재귀, 메모이제이션

#include <iostream>
#include <vector>
using namespace std;

int dp[31][31];
int d(int x, int y)
{
    if (dp[x][y] > 0) return dp[x][y];
    else if (x==y || y == 0) return 1;
    else return dp[x][y] = d(x-1,y) + d(x-1, y-1);
}
int main()
{
    int t, n, m;
    cin >> t;
    vector<vector<int> > a(t, vector<int>(2));
    for (int i = 0; i < t; i++)
    {
        cin >> a[i][0];
        cin >> a[i][1];
    }
    for (int i = 0; i < t; i++)
    {
        printf("%d\n", d(a[i][1], a[i][0]));
    }

    return 0;
}
반응형