문제접근![](data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)
•
가장 가치가 큰 코인부터 확인을 하면서 필요한 동전 갯수를 카운트 하고 그 동시에 확인해야할 k원을 줄여나가는 방식으로 풀어나갔습니당
놓쳤던 부분![](data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)
•
굳이 분기를 통해서 continue를 하는 것보다 반대의 조건으로 원하는 조건일때만 분기를 타게 하는 방향이 더 코드가 간결해지지 않나 싶음
코드![](data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)
2016 KB
0 ms
#include <iostream>
#include <vector>
int n, k;
std::vector<int> input_coin;
void input_setting()
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
}
void input()
{
std::cin >> n >> k;
input_coin.resize(n);
for (int i = 0; i < n; i++)
std::cin >> input_coin[i];
}
void solution()
{
int answer;
answer = 0;
for (int i = n - 1; i >= 0; i--)
{
if (input_coin[i] > k)
continue;
answer += k / input_coin[i];
k %= input_coin[i];
}
std::cout << answer;
}
int main(void)
{
input_setting();
input();
solution();
return (0);
}
C++
복사