---
# System prepended metadata

title: Untitled

---

問題
商品名と支払い金額を入力すると、お釣りの「小銭の枚数」を返す関数またはメソッドを実装せよ。商品名と価格は以下の通り。

お茶: 120円
コーラ: 150円
エナジードリンク: 280円
入力される通貨は日本円で、最大1000円までとする。
また、有効な貨幣は「500円」「100円」「50円」「10円」とする。

たとえば、「1000円でお茶を購入」すると、返却すべき金額は880円だが、釣銭は「500円×1, 100円×3, 50円×1, 10円×3」となる。返り値は、任意の形式のクラス、連想配列、オブジェクト、構造体、リストなどで表現してよい。
返り値は、この関数が他のエンジニアにより使われることを考慮し、使いやすい値とすること。

```otusiri.kt
fun return(drink: Drink, price: Int): String {
val otsuri = 0
 when(drink) {
     "お茶"->{
         otsuri = price - 120
     } 
     "コーラ"->{
         otsuri = price - 150
     }
     "エナジードリンク"-{
         otsuri = price - 280
     }
 }
 otsuri = price - drink.price
 
 val kaheiList = listOf(500, 100, 50, 10)
 val kaheiMap = HashMap<Int, Int>() 
 var returnKaheiList = arrayListOf()
 for (kahei in kaheiList) {
     var kaheiCount = 0
     while(otsuri > 0){
         otsuri -= kahei
         if (otsuri > 0){
             kaheiCount++
         } else {
             otsuri += kahei
             returnKaheiList.add(kaheiCount)
             kaheiMap.set(kahei, kaheiCount)
             break
         }
     }
 }
 
 data class Drink (
    val name: String,
    val price: Int
)
}
```