코딩테스트 준비
백준 11047 동전 0 Greedy Algorithm
김T수
2021. 1. 7. 14:21
오늘부터 20200107 코딩테스트 공부한다. 구글링. . 많이 해봐야 푸는법 익히니까 구글링한다고 좌절금지 OTL
그리디 -> dp ->dfs, bfs 순서로 할 예정 . . . dp부터 할까 . . 아니다 .. 그냥 하자.. .
그리디는 예제보고 식 세워보는게 좋은듯 . . .~
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
그냥 식세워서 풀어보고 코드로 바꾸는게 나은듯
어 더 정확한 풀이 할라면 sort 하고 돌려야 하지만 어차피 애초에 오름차순으로 주어지니까 굳이 안하고 해도 ㄱㅊ
#include <iostream>
using namespace std;
/*greedy는 식세우기. . . . 시발롬아!
문제보고 식을 세우고 생각하기
*/
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, k;
int cnt = 0;
int won[1001];
cin >> n >> k;
for (int i = 0; i < n; i++)
{
cin >> won[i];
}
for (int i = n - 1; i >= 0; i--)
{
//오름차순으로 들어오니까 반대로 돌려서
if (k - won[i] >= 0)
{
k = k - won[i];
cnt++;
i++; // 1000원 여러번 하기 이런원리
}
}
cout << cnt;
}