#include<iostream>
#include<vector>
using namespace std;
int main(void)
{
int i, j, m, n, k;
vector<vector<int>> dp;
vector<int> arr;
cin >> n >> k;
arr.resize(n);
dp.resize(k + 1);
for (i = 0; i <= k; i++)
dp[i].resize(k + 1);
for (i = 0; i < n; i++)
cin >> arr[i];
for (i = 1; i <= k; i++)
{
m = 0;
while(m+1 <= n)
{
j = arr[m];
cout << j << endl;
if (i < j)//1<1, 1<2, 1<5 2< 1, 2<2, 2<5
{
m++;
continue;
}
if (m > 1)
{
if (j > 2)
dp[i][j] = dp[i][arr[m - 1]] + dp[i - arr[m]][j];
else
dp[i][j] = dp[i][arr[m - 1]] + dp[i - 1][j] -1;
}
if (i % j == 0)
dp[i][j] += 1;
m++;
}
}
cout << dp[i][j-1]<<endl;
return 0;
}
해당 동전의 값이 10이고 그 값을 표현하는 값이 1,2,5라 했을 때 1+1+1+1+1+5, 1+1+1+5+2 이런식으로 경우의수 중복없이 하는 코드인데 돌리다보면 에러가 발생합니다. 무엇때문인가요?
벡터 안에 벡터를 넣는 것 자체가 굉장히 바람직하지 못한 생각...
뭐 에러 내용은 왠지 벡터 접근 에러일 것 같은데...