선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법입니다.
현재 상태
에서의 최적의 해답을 선택합니다.주의점
선택한 상황이 그 순간 가장 최적의 상황이 되어야 하고 이 답이 최종적으로 해답이 되어야합니다.만약 그렇지않으면 그리디알고리즘을 쓸 수 없습니다
예시
function partTimeJob(k) {
// TODO: 여기에 코드를 작성하세요.
// 입력값k 는 가격
//출력값은 동전의 개수!
//가장 큰 500원부터 가격을 빼준다
//배열로?
let arr =[500 , 100 ,50 ,10 , 5, 1]
let count = 0
for(let i of arr){
count = count + Math.floor(k / i)
k = k - Math.floor(k / i) * i
}
return count
}
이 문제에서 그리디알고리즘을 사용할 수 있는 이유?
모든 동전들이 배수이기 때문 만약 배수가 아니였다면 현재상황에서 최선의 선택이 될진 몰라도 최종적인 답에서 오류가 나게된다