Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新入女子社員のコードを直す簡単なお仕事 #新宿Scala座 第6回

numa08
December 08, 2013
220

新入女子社員のコードを直す簡単なお仕事 #新宿Scala座 第6回

新入女子の書いたコードをScalaで直しました。ライブコーディングで書いたコードは俺のブログにあります。

http://numa08.hateblo.jp/entry/2013/12/07/231305

numa08

December 08, 2013
Tweet

Transcript

  1. numa08 • 最近社内案件でScala使った • メンテできるの俺だけ • 闇に沈む予感!! • VagrantとかChefとか使いまくり •

    Ruby様すげぇ • オレオレツール、オレオレgemを作るようになった • コマンドラインのツール作るのにRubyって(フロントだけでも)最強で は・・・? • JenkinsとRakefileの相性が良いことに気がついた • またRuby・・・・
  2. 問題 • サイトの集客キャンペーンとして、「組み合せで無料キャン ペーン」と銘打って、設定金額に最も近い商品の組み合わせ を購入すれば無料となるキャンペーンを開催することにしまし た。その内容は以下の通りです。 • キャンペーン設定金額として毎日1つの設定金額(整数)mが決められま す。 •

    ECサイトの利用客は、 2つの異なる商品(値段は同じでも構わないが 必ず二つ) を購入し、その 合計価格がキャンペーン設定金額m円以下 で、かつ最大となるような商品の組合せだった場合、 その商品を無料 で手に入れることができます。 • すべての商品の価格と、イベント期間中の 各日のキャンペーン設定金 額m円(キャンペーン日数分) が与えられるので、各日のキャンペーン設 定金額mに対し、上記ルールのもとでの最大値を計算するプログラムを 作成する のがあなたの仕事です。
  3. 戦略 • 標準入力から商品数とイベント日数を得る • 標準入力から商品の金額リストを得る • 標準入力からキャンペーン設定額リストを得る • 金額リストから全ての組み合わせの合計金額リストを得る •

    設定額リストの要素に対して、 • 設定額以下かつ • 昇順にソートされたリストを作りその先頭要素を得る • 上記のリストを作る • 出力用に整形して出力する