VOYAGE GROUPのCTOが出す問題に挑戦して、賞金をゲットだ!
レベルに合わせた賞金が用意されており、レベルごとに賞金を獲得できる人数が限られている。
レベル1は先着制だ。このくらいはさくっと回答してほしい。
レベル2およびレベル3はコードの質で賞金獲得者が決まるので慌てる必要はない。
- レベル1 ・・・ 500円(100名)
- レベル2 ・・・ 2,000円(30名)
- レベル3 ・・・ 10,000円(10名)
さらに回答者のうち上位入賞者は10/28(金)に開催されるCTOとの豪華ミートアップイベントに招待しよう。
- 2018年卒業予定学生であること
- サポーターズに登録していること
※2018年卒以外も応募可能ではあるが残念ながら賞金の対象外だ。
※前回の挑戦状に参加した人も応募可能ではあるが残念ながら賞金の対象外だ。
下記フォームから提出せよ。
https://goo.gl/forms/pntt6rXeOClbWr1F2
- Secret Gistを作成してそのURLで提出だ。
- どうしてもGistで提出できない場合は、直接コードを提出だ。
- Gistで提出する場合は、ファイル名に適切な拡張子(.rb, .py, etc)を付けること。
- 実行ファイルを作成する必要がある言語の場合は、作成手順も提出せよ。
- 例えばCならMakefileもあわせて提出するなど。
- 実行ファイルを作成できなかった場合は、賞金の対象外になることもある。
VOYAGE GROUPには社外の方も勉強会などで利用できる無料シェア会議室 PORTやAJITOがある。
さらに勉強会後の懇親会のときにピザや寿司を提供するピザスポンサーや寿司スポンサーなども行っており好評だ。
そうしていると割引クーポンが貯まってきて、どの組み合わせで使うのがベストかを考えるのが意外と大変だ。。。
そこで、購入する商品のリストと手持ちの割引クーポンを渡すと利用すべき割引クーポンを教えてくれるツールを作ってほしい。
購入する商品のリストと手持ちの割引クーポンをもとに、利用すべき割引クーポンを返す手続きを書け。
提出するコードは実在する処理系で動作する言語の中から自由に選択してくれ。
また、テストコードも提出せよ。テストコードがない場合は、手続きが正しく動作することをどのようにテストしたかを提出せよ。
- できるだけ支払い額が少なくなるようにする。
- 支払い額 = 購入する商品の合計額 - 利用する割引クーポンの合計額
- 利用する割引クーポンの合計額は購入する商品の合計額を越えてはいけない。
- 上記を満たしたうえで、クーポン枚数が一番少ない組み合わせ。
- ピザメニュー
- ジェノベーゼ
- M 1000円
- L 1400円
- マルゲリータ
- M 1200円
- L 1800円
- ジェノベーゼ
- サイドメニュー
- ポテトフライ 400円
- グリーンサラダ 500円
- シーザーサラダ 600円
- 割引クーポンは購入する商品の合計額が1000円を越えるときのみ利用可能
- 500円割引
- 購入する商品の合計額から500円割引
- 1回の支払いで2枚まで利用可能
- 200円割引
- 購入する商品の合計額から200円割引
- 1回の支払いで2枚まで利用可能
- 100円割引
- 購入する商品の合計額から100円割引
- 1回の支払いで3枚まで利用可能
- ピザメニュー購入で400円割引
- 購入する商品の合計額から400円割引
- 購入する商品リストにピザメニューのいずれかが含まれていれば利用可能
- 1回の支払いで1枚まで利用可能
まずは下記テストケースをもとにテストを行い、正しく動作するか確認するんだ。
また、必要に応じて下記以外のケースでもテストしてほしい。
- ケース1
- 購入する商品のリスト
- ジェノベーゼM x1
- 手持ちの割引クーポン
- 500円割引 x1
- 200円割引 x1
- 100円割引 x1
- ピザメニュー購入で400円割引 x1
- 使うべき割引クーポン
- なし
- 合計額が1000円を越えない
- なし
- 購入する商品のリスト
- ケース2
- 購入する商品のリスト
- マルゲリータM x1
- 手持ちの割引クーポン
- 500円割引 x0
- 200円割引 x0
- 100円割引 x0
- ピザメニュー購入で400円割引 x0
- 使うべき割引クーポン
- なし
- 割引クーポンを持ってない
- なし
- 購入する商品のリスト
- ケース3
- 購入する商品のリスト
- ポテトフライ x2
- シーザーサラダ x1
- 手持ちの割引クーポン
- 500円割引 x2
- 200円割引 x1
- 100円割引 x2
- ピザメニュー購入で400円割引 x1
- 使うべき割引クーポン
- 500円割引 x2
- 200円割引 x1
- 100円割引 x2
- 購入する商品のリスト
- ケース4
- 購入する商品のリスト
- ジェノベーゼL x1
- 手持ちの割引クーポン
- 500円割引 x2
- 200円割引 x1
- 100円割引 x2
- ピザメニュー購入で400円割引 x1
- 使うべき割引クーポン
- 500円割引 x2
- ピザメニュー購入で400円割引 x1
- 購入する商品のリスト
- ケース5
- 購入する商品のリスト
- ジェノベーゼM x1
- マルゲリータM x1
- 手持ちの割引クーポン
- 500円割引 x3
- 200円割引 x3
- 100円割引 x4
- ピザメニュー購入で400円割引 x2
- 使うべき割引クーポン
- 500円割引 x2
- 200円割引 x2
- 100円割引 x3
- ピザメニュー購入で400円割引 x1
- 購入する商品のリスト