알고리즘
BOJ 11047 동전 0 c++
백준 11047
#include <bits/stdc++.h>
using namespace std;
int n;
int arr[12];
int k;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> k;
for (int i = 1; i <= n; i++)
cin >> arr[i];
int count = 0;
while (k > 0) {
if (arr[n] > k) {
n--;
continue;
}
k -= arr[n];
count++;
}
cout << count;
}
그리디 알고리즘을 이용.
DP를 쓸 수도 있지만 그러면 시간초과가 남.
동전은 배수관계를 갖기 때문에 가장 큰 녀석을 최대한 많이 쓰면 됨.
max_element는 시작주소와 마지막주소 + 1을 넣으면 최대값이 담긴 곳의 주소를 리턴하는 함수.
'Algorithm' 카테고리의 다른 글
BOJ 11050 c++ 이항계수(1) (0) | 2020.07.17 |
---|---|
BOJ 1931 c++ (0) | 2020.07.16 |
BOJ 1912 c++ (0) | 2020.07.16 |
BOJ 11053 c++ (0) | 2020.07.16 |
BOJ 1463 c++ (0) | 2020.07.15 |
최근댓글