Notice
Recent Posts
Recent Comments
Link
거의 알고리즘 일기장
백준 2294번 _ 동전 2 본문
https://www.acmicpc.net/problem/2294
풀이방법
메모제이션 문제, 거의 동일한 방식으로 푼 밑의 풀이를 참고.
https://kunkunwoo.tistory.com/100
전체코드 ( 반복문 풀이 )
#include <iostream>
#include <algorithm>
#include <vector>
#define INF 987654321
using namespace std;
int dp[10001];
vector<int>coins;
int n, k;
void dpInit()
{
for (int i = 1; i <= k; i++)
dp[i] = INF;
}
void Input()
{
cin >> n >> k;
coins.resize(n+1);
for (int i = 1; i <= n; i++)
cin >> coins[i];
sort(begin(coins), end(coins));
}
void solve()
{
for (int i = 1; i <= n; i++)
{
int coin = coins[i];
for (int j = 1; j <= k; j++)
{
if (j % coin == 0)
dp[j] = min(j / coin, dp[j]);
if (dp[j] == INF)
continue;
if (j + coin <= k)
dp[j + coin] = min(dp[j + coin], dp[j] + 1);
}
}
}
int main()
{
Input();
dpInit();
solve();
if (dp[k] == INF)
cout << -1 << '\n';
else
cout << dp[k];
return 0;
}
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
백준 10844번 _ 쉬운 계단 수 (0) | 2020.05.09 |
---|---|
백준 1699번 _ 제곱수의 합 (0) | 2020.05.09 |
백준 9465번 _ 스티커 (0) | 2020.05.09 |
알고스팟 _ LIS, 백준 12015번 _가장 긴 증가하는 부분 수열 2 (0) | 2020.05.08 |
알고스팟 _ 삼각형 위의 최대 경로 (0) | 2020.05.08 |
Comments