가장 큰 단위수부터 자릅니다.
간단하게 1만원, 1천원, 1백원 만있다고 가정합니다.
37600 이면
우선 1만원짜리로 자릅니다. 1, 1, 1, 3장 하면 7600이남죠.
그다음엔 1천원짜리로 자릅니다. 7장이고 600원이 남죠.
그다음엔 100원짜리로 자릅니다. 6개고 0원이 남죠.
미리 정해둔 단위수로 자르는 재귀함수를 짜시면됩니다.
예를들어 만원짜리가 2장밖에 없는경우
우선 1만원짜리로 자릅니다. 1, 1, 1, 3장 하면 7600이남죠.
>> 여기서 37600-10000 = true, 37600-10000 = true 까진 성공이지만
37600-10000 을 다시하려고하면 1만원짜리가없어서 실패합니다.
그럼 다음 페이즈인 1천원짜리로 넘기면됩니다.
그럼이제 17600-1000 =true .... 식으로 하여 1000원짜리가 부족하지않다면
600-1000 이 될겁니다. 그럼 -400원이 떠버리죠.
-값이 뜨면 다음 페이즈로 넘어가면 됩니다.
그럼 이제 600-100... 으로 넘어가고 결국에
100-100 = 0 이 되면 끝난거죠.
그럼 그전에 count 한 단위만큼 지폐를 출력해주면 됩니다.
이때 주의하실게 결국 모든 페이즈를 다 지나가도 잔돈을 반환할수 없는 경우입니다.
참고로 실제 자판기의 경우 이럴때 대단한 뭔가 해주지않습니다.
그냥 반환할수있는 돈이 부족하니 자판기 관리자에게 연락하라고 하고 끝입니다^^
어디에 쓰시는 프로그램인지 모르겠지만 작성자분도 그정도만 예외처리 해주시면될것으로 보입니다.