paiza開発日誌paiza開発日誌IT/Webエンジニア向け総合求人・学習サービス「paiza」の開発者が、プログラミングやITエンジニアの転職などについて書いています。ITエンジニア向け総合求人・学習サービス「paiza」の開発者が、プログラミングやITエンジニアの転職などについて書いています。paiza-オンラインハッカソンTweet■どなたか効率のよいアルゴリズムを教えてください!「あなたの部署に配置された新人プログラマの子からヘルプを頼まれた」という設定で、一つのプログラミング課題に対して参加者全員でより良いコードを作っていくオンラインハッカソン「paizaオンラインハッカソン(略してPOH![ポー!])」をpaizaで12/2(月)11時より開催します。paizaへの会員登録をしなくても参加が可能です。現在プログラマーをやっています。サイトのキャンペーンで、2つの異なる商品(値段は同じでも構わない)を購入し、その合計価格が指定の価格以内で最大になる買い物をした人は無料、というキャンペーンのためのプログラムを開発しています。上司が勝手に決めた納期は連休明けです。上記のようなプログラムを途中まで書いたところなのですが、コードの行数が長く、どうも効率が悪いような気がしますし、バグがないか心配です。このままでは納期に間に合うか不安で夜も眠れません。私は間違ったコードを書いてるのでしょうか。効率のよいアルゴリズムがあると思うと居たたまれません。したらいいでしょうか。■問題詳細あなたはとあるECサイトのプログラマです。安いもので10円、高いものでは100万円の商品まで存在します。今回、そのECサイトを運営しているあなたの会社は、サイトの集客キャンペーンとして、「組み合せで無料キャンペーン」と銘打って、設定金額に最も近い商品の組み合わせを購入すれば無料となるキャンペーンを開催することにしました。その内容は以下の通りです。キャンペーン設定金額として毎日1つの設定金額(整数)mが決められます。その商品を無料で手に入れることができます。※設定金額が23150円、商品は3つ(シュークリーム12,000円とスルメイカ17,000円、大根は11,120円)だった場合、シュークリームと大根(合計23,120円)の組み合わせが無料になります。入力される値の詳細などはこちらをご覧下さい■プログラミング力が試される!人のコードが見れる!「同じ課題に対し、他の人はどういうコードを書くんだろう?」そう思ったことはありませでしょうか。paiza(http://paiza.jp)はコーディング転職サイトなので、日々多くのコードが送られてきますが、制御構造をはじめ、変数名、インデントの仕方、そしてアルゴリズムなど千差万別です。これらを参加者同士で見る事が出来ればスキルアップの場として面白いのではないかと常々思っていましたが、paizaは転職サイトという形を取っているため、そういったことがやりづらい環境でした。そこでpaizaの転職サービスとは分離する形で、プログラマだったら一度は考える、自分と人のコード比較をしてみたいという思いをかなえる場として今回「paizaオンラインハッカソン(略してPOH![ポー!])」を企画しました。■気軽に参加できるオンラインハッカソン企画のタイトル通りいわゆるハッカソンなのですが、ハッカソンはハードルが高くてなかなか参加できない、地方なのでなかなか参加できないなど、興味はあっても気軽に参加できない方もいらっしゃるのではないでしょうか。そこで「paizaオンラインハッカソン(略してPOH![ポー!])」ではオンラインで誰でも気軽に参加できるように、特に会員登録等しなくても参加できるようにしました。※ただし他の人の解答を見るためには会員登録が必要です。※ジャッジが短時間で終わらなかった場合を考えて、結果を伝えるためにメールアドレスの登録が必須としていますが、今回のハッカソンに関連する通知以外では利用いたしません。paizaと同様に、コードは提出前チェック機能で簡単なテストケースのチェックがその場で出来るようになっています。提出したコードについても、その場で結果が出るオンラインジャッジとなっています。ジャッジは複数のテストケースによって行われ、バグの有無と実行速度によって判断されます。他の人の書いたコードが気になると思いますが、こちらも随時上位コードについて公開をしていきます。※上位のコードしか発表しないので、書き殴ったコードだからといって遠慮せずに試してみてください。今回の企画はコンテストというよりは、みんなでより効率の良いプログラムを書いてみようという趣旨なので、問題内容の公開もしていますし、ブログ等で解答コードを書いていただいてもよい、という形を取っています。最初は自分の力でチャレンジしてみて、そのあとは人のコードを研究してみるもよし、そこからさらに効率の良いコードに改修してみるもよしです。チャレンジしてみてください!オンラインハッカソン「paizaオンラインハッカソン(略してPOH![ポー!])」|http://paiza.jp/poh/ec-campaign/paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。「paiza転職」は、自分のプログラミング力が他社で通用するか(こっそり)腕試しができる、IT/Webエンジニアのための転職サービスです。プログラミングスキルチェック(コーディングのテスト)を受けて、スコアが一定基準を超えれば、書類選考なしで複数の会社へ応募ができます。スキルチェックだけ、という使い方もできます。転職を考えていない方でも、自分のプログラミングスキルを客観的に知ることができますので、興味がある方はぜひ一度ご覧ください。paiza転職をご利用いただいている企業の人事担当や、paiza転職を使って転職を成功した方々へのインタビューもございます。こちらもぜひチェックしてみてください。