그리디 알고리즘을 사용하여 PHP에서 최소 코인 변경 문제에 대한 효율적인 솔루션을 구현하는 방법은 무엇입니까?
인용문:
일상 생활에서 우리는 종종 변화가 필요합니다. 특히 쇼핑이나 거래를 할 때 더욱 그렇습니다. 최대한 적은 코인을 사용하기 위해서는 가능한 한 적은 코인을 사용하여 거스름돈 금액을 합산해야 합니다. 컴퓨터 프로그래밍에서는 그리디 알고리즘을 사용하여 이 문제를 해결하여 효율적인 솔루션을 얻을 수 있습니다. 이 기사에서는 PHP에서 그리디 알고리즘을 사용하여 최소 코인 변경 문제에 대한 효율적인 솔루션을 구현하는 방법을 설명하고 해당 코드 예제를 제공합니다.
1단계: 두 매개변수를 허용하는 maximumCoins라는 함수를 만듭니다: amount (amount ) 및 동전 명칭 배열(동전).
2단계: 변경을 위한 동전 조합을 저장할 빈 결과 배열(결과)을 정의합니다.
3단계: 동전 액면가 배열을 내림차순으로 정렬하여 액면가가 큰 동전부터 작은 동전까지 선택합니다.
4단계: 동전 단위 배열을 탐색하고 현재 단위가 매번 목표 금액보다 작거나 같은 동전을 선택하여 변경합니다.
5단계: 변경 과정에서 목표 금액을 업데이트하고 선택한 동전 액면가를 결과 배열에 추가한 다음 목표 금액에서 선택한 동전 액면가를 뺍니다.
6단계: 목표 금액이 0이 될 때까지 4단계와 5단계를 반복합니다.
7단계: 결과 배열을 반환합니다.
다음은 특정 PHP 코드 예입니다.
function minimumCoins($amount, $coins) { $result = []; // 存储找零的硬币组合 rsort($coins); // 降序排列硬币面额数组 foreach ($coins as $coin) { while ($coin <= $amount) { $result[] = $coin; // 将当前硬币面额添加到结果数组中 $amount -= $coin; // 更新目标金额 } } return $result; } $amount = 47; // 目标金额 $coins = [25, 10, 5, 1]; // 硬币面额数组 $result = minimumCoins($amount, $coins); echo "找零组合:"; foreach ($result as $coin) { echo $coin . " "; }
위 코드는 "변경 조합: 25 10 10 1 1"을 출력합니다. 즉, 47위안을 변경하려면 5개의 코인이 필요합니다.
결론:
그리디 알고리즘을 사용하면 PHP의 최소 코인 변경 문제를 효율적으로 해결할 수 있습니다. 이 문제는 일상생활에서 매우 실용적이며 그리디 알고리즘은 간단하고 효율적인 솔루션을 제공합니다. 이 기사에 제공된 코드 예제와 솔루션 아이디어가 도움이 되기를 바랍니다.
위 내용은 그리디 알고리즘을 사용하여 PHP에서 최소 코인 변경 문제에 대한 효율적인 솔루션을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!