반응형
문제는 다음과 같습니다.
https://www.acmicpc.net/problem/11047
11047번: 동전 0
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
www.acmicpc.net
풀이 코드는 다음과 같습니다.
#include <iostream>
#include <vector>
using namespace std;
int main(void) {
int n,m;
vector<int>v;
cin>>n>>m;
for(int i{0};i<n;i++)
{
int temp;
cin>>temp;
v.push_back(temp);
}
int count{0};
for(int i{v.size()-1};i>=0;i--)
{
if(m==0)
{
break;
}
else
{
while(m>=v[i])
{
count++;
m-=v[i];
}
}
}
cout<<count<<endl;
return 0;
}
동전의 개수를 최소로 하기 위해 가장 큰 수부터 확인합니다.
문제에서 입력 때 부터 오름차순으로 입력하기 때문에 정렬하는 과정이 따로 필요하지 않습니다.
이후 적당한 동전 가치를 찾으면 동전을 하나 증가 시킴과 동시에 입력받은 값에 동전 가치를 차감하는 과정을 반복하여 동전이 얼마나 필요한지 확인할 수 있습니다.
반응형
'백준 문제풀이' 카테고리의 다른 글
10845번 : 큐 (0) | 2022.05.12 |
---|---|
1259 번 : 팰린드롬수 (0) | 2022.05.12 |
1152번 : 단어의 개수 (0) | 2022.05.12 |
1157번 : 단어 공부 (0) | 2022.05.12 |
2908번 : 상수 (0) | 2022.05.11 |