본문 바로가기
알고리즘/백준

백준 22115 창영이와 커피 C++

by ash9river 2024. 4. 16.

단순한 배낭 문제

반례

1 0
1

답 : 0

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
    cin.tie(0);
    ios_base::sync_with_stdio(0);
    int n,k;
    cin>>n>>k;
    vector<int> v(n);
    for(int i=0;i<n;++i){
        cin>>v[i];
    }
    vector<vector<int>> dp(n+1,vector<int>(k+1,200));
    dp[0][0]=0;
    for(int i=1;i<=n;++i){
        int cafe=v[i-1];
        for(int j=0;j<cafe&&j<k;++j){
            dp[i][j]=dp[i-1][j];
        }
        for(int j=cafe;j<=k;++j){
            dp[i][j]=min(dp[i-1][j],dp[i-1][j-cafe]+1);
        }
    }
    int ans=200;
    for(int i=1;i<=n;++i){
        ans=min(ans,dp[i][k]);
    }
    if(ans==200) ans=-1;
    if(k==0) ans=0;
    cout<<ans;
}

'알고리즘 > 백준' 카테고리의 다른 글

백준 16437 양 구출 작전 C++  (0) 2024.05.02
백준 24391 귀찮은 해강이 C++  (0) 2024.04.29
백준 19941 햄버거 분배 C++  (0) 2024.04.21
백준 17406 배열 돌리기 4 C++  (0) 2024.04.16
백준 1106 호텔 C++  (0) 2024.04.15