본문 바로가기

그리디탐색2

[그리디알고리즘] 백준 11047번 문제준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 문제분석동전개수의 최솟값을 묻는 질문이므로, 가격이 큰 동전 부터 거슬러서 개수를 구하면 최소 조건이 된다.그리디 탐색 방법으로 , 각각의 시행 시점의 최솟값이 전체 최솟값이 되기에 그리디 탐색방법으로 사용해도 무방하다- 거스름 돈의 입력은 오름차순.. 2024. 11. 27.
그리디 알고리즘 그리디 알고리즘이란?그리디 알고리즘 (욕심쟁이 알고리즘)이란?"매 선택에서 지금 이순간 당장 최적의 답을 선택하여, 적합한 결과를 도출하자"라는 모토를 가지는 알고리즘이다.그리디 알고리즘을 선택하면, 매 선택이 그 순간에 대해서는 최적의답이지만 그걸 종합적으로 확인해보면 최적이라는 보장이 있지 않다.즉, 한번의 선택이 다음 선택에는 전혀 무관한 값이어야 하며 매 순간의 최적해가 문제에 대한 최적해일 때 사용해야하는 알고리즘 그리디 알고리즘 핵심 이론그리디 알고리즘 수행과정1. 해 선택 : 현재 상태에서 가장 최선이라고 생각되는 해를 선택2. 적절성 검사 : 현재 선택한 해가 전체 문제의 제약조건에 벗어나지 않는지 검사3. 해 검사 : 현재까지 선택한 해 집합이 전체 문제를 해결할 수 있는지 검사한다.(전.. 2024. 11. 26.