ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 2293번 C++ 풀이
    백준 2018. 8. 21. 21:42
    #include <iostream>
    #include <algorithm>
    #include <numeric>
    using namespace std;
    long long buffer[10001][3];
    int coin[101];

    int main() {

    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int n,k;
    cin >> n >> k;
    for (int i=1; i<=n; i++){
    cin >> coin[i];
    }
    for (int i =1; i<=k; i++){
    buffer[i][1] = (i%coin[1] == 0)? 1 : 0;
    }

    if (n > 1) {
    for (int j = 2; j <= n; j++) {
    for (int i = 1; i <= k; i++) {

    if (i - coin[j] == 0) buffer[i][j % 2] = buffer[i][(j-1)%2] + 1;
    else if (i - coin[j] > 0) buffer[i][j %2] = buffer[i][(j - 1)%2] + buffer[i - coin[j]][j%2];
    else buffer[i][j%2] = buffer[i][(j - 1)%2];
    }
    }
    }
    // for (int i = 1; i<=k ; i++){
    // for (int j = 1; j <= n; j++){
    // cout << i << ' ' << j<<' '<<buffer[i][j] << ' ';
    // }
    // cout << '\n';
    // }
    cout << buffer[k][n%2];
    return 0;
    }


    '백준' 카테고리의 다른 글

    백준 3053번 풀이  (0) 2018.08.24
    백준 2156번 C++ 풀이  (0) 2018.08.24
    백준 10844번 C++ 풀이  (0) 2018.08.20
    백준 2579번 C++ 풀이  (0) 2018.08.19
    백준 1463번 C++ 풀이  (0) 2018.08.19
Designed by Tistory.