반응형
문제 출처 :
https://www.acmicpc.net/problem/11047
알고리즘 분석 :
최적의 값을 찾아내는 과정이니 결국 Greedy Algorithm(탐욕 알고리즘)이 녹아있는 문제이다.
하지만 이 문제에 다음과 같은 조건이 없었다면 Greedy Algorithm으로 접근 해서는 안된다.
(1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 이 조건이 있기에 탐욕 알고리즘을 이용 할 수 있다.
탐욕 알고리즘의 문제중 쉬운 문제에 해당하므로 소스 코드를 이용하여 문제를 해석하자.
소스 코드 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <stdio.h> int main() { int n, money; int i; int arr[11]; int cnt = 0; scanf("%d %d", &n, &money); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } for (i = n - 1; i >= 0; i--) { if (money - arr[i] >= 0) { money = money - arr[i]; cnt++; i++; } } printf("%d", cnt); return 0; } // This source code Copyright is Crocus // Do you want to see more contents? click here >> | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[10829번] 이진수 변환 (0) | 2016.07.09 |
---|---|
[10942번] 팰린드롬? (0) | 2016.07.06 |
[11399번] ATM (Greedy Algorithm) (0) | 2016.07.05 |
[11048번] 이동 하기 (Recursive, Dynamic Programming) (0) | 2016.07.05 |
[2851번] 슈퍼 마리오 (Dynamic Programming) (0) | 2016.07.05 |