【ハッカソン】paizaオンラインハッカソンPOH![ポー!]開催中

このエントリーをはてなブックマークに追加
1sin+sinφ ★
2013年12月2日より開始したpaizaオンラインハッカソンVol1
「新人女子の書いたコードを直すだけの簡単なお仕事です!」ですが,
おかげ様で1週間で15,000ものコード提出を頂けています。
今回は皆さんのチャレンジの様子について中間レポートをお届けします。

■paizaオンラインハッカソンとは?
「paizaオンラインハッカソン(略してPOH![ポー!])」はオンラインで誰でも気軽に参加できるハッカソンを目指しているので,
とくに会員登録などをしなくても参加できるような仕組みとなっています。
このハッカソンは,1つの課題に対してどのようにコードを書くかより深く考えるきっかけになればと思って企画しました。
競技プログラミングではないので,Twitterやブログ,Githubなどでの解法の公開はとくに制限していません。
むしろみんなでどうやったらより実行速度の速いコードが書けるのか議論していただき,学びの機会にしていただければと思っています。

野田さんという新人女子プログラマーが書いたコードを直す,というストーリーになっており,一見ネタ臭が漂う企画となっていますが,
通常こういったプログラミングの企画だと,上級者を対象にした敷居の高い競技プログラミングや,
凄腕の人ばかりあつまるハッカソンとなってしまいがちなので,敷居を下げつつ,
実行時間を早くしていく過程での学びや楽しさを共有できればと思い企画しました。

■100点への道のり
paizaオンラインハッカソンVol.1では,提出コードに対して3つのテストケース(小,中,大)を
入力してそれぞれの実行時間が結果画面で表示されます。
http://image.gihyo.co.jp/assets/images/news/report/2013/12/1801/001.png
今回のハッカソンでは遊び方は自由なのですが,まず100点を目指すベーシックなものと,
100点を取った後に一番重いテストケースであるテストケース3でどこまで速くなるかを競う遊び方,
すべてのテストケースで0.01を出す遊び方,最遅タイムを更新する遊び方などがあります。
まず100点を取るためにはまず3つのテストケースをタイムアウトせずに制限時間内(言語によって異なります)で
通す必要がありますが,とりあえず動くプログラムを書くだけだとテストケース2,3を通すのが難しい設定になっています。
とある方のPHPでのチャレンジ記録をグラフ化すると下記のような感じでタイムを削っていっているのがわかります。
http://image.gihyo.co.jp/assets/images/news/report/2013/12/1801/002.png
最初はテストケース1しか通っておらず,テストケース1の処理に4.15秒かかっています。
その後4回目の提出では6.82秒という最遅タイムを出してしまいますが,
8回目の提出ででテストケース1が1.67秒,
テストケース3が6.03秒と100点を取っています(※テストケース2を図に入れると見にくいため省いています)。

そして17回目の提出でテストケース1で0.01を叩き出すに至っています。
テストケース1の最速(0.01秒)と最遅(6.82秒)を比較するだけでも,実に682倍も高速化できたことがわかります。

■C#最速0.03秒への道のり
次にC#で一番重いテストケース3で最速タイム0.03秒(2013年12月13日現在)を出した方のチャレンジ記録です。
この方は実に276回もチャレンジしていただきました!初回提出からテストケース3まで通っており100点ですが,
その時点でテストケース3は0.48秒の実行時間。ここから13回目の提出で0.17秒,126回目の提出で0.09秒,
196回目の提出で0.03秒まで縮めてきており頭が下がります。C#でテストケース3の実行時間が0.03秒は,この原稿を書いている2013年12月13日現在最速のタイムとなります。
http://image.gihyo.co.jp/assets/images/news/report/2013/12/1801/003.png

■どうやったら早くできる?
現在下記のようなブログでさまざまな解法が掲載されていますので,
まずは自分の力だけで試して,そのあとこれらのブログ等を参照して最速タイムを目指してみてください!
2014年1月8日のイベント期間終了後には,各言語の最速コードについても開示していく予定です。おたのしみに!

イメージ:paizaオンラインハッカソン(略してPOH![ポー!])
http://image.gihyo.co.jp/assets/images/news/info/2013/12/0201/001r.png

ソース:paizaオンラインハッカソンPOH![ポー!]中間レポート――1週間で1万5,000ものコードが提出される! /gihyo.jp
http://gihyo.jp/news/report/2013/12/1801

参考URL:お題、解答欄はこちらで
paizaオンラインハッカソンVol1
https://paiza.jp/poh/ec-campaign
2sin+sinφ ★:2013/12/21(土) 14:53:16.02 ID:???
お題。

あなたはとあるECサイトのプログラマです。
このECサイトではたくさんの商品を取り扱っていて、
一番安いもので10円、高いものでは100万円の商品まで存在します。
今回、そのECサイトを運営しているあなたの会社は、サイトの集客キャンペーンとして、
「組み合せで無料キャンペーン」と銘打って、設定金額に最も近い商品の組み合わせを購入すれば
無料となるキャンペーンを開催することにしました。その内容は以下の通りです。

キャンペーン設定金額として毎日1つの設定金額(整数)mが決められます。
ECサイトの利用客は、 2つの異なる商品(値段は同じでも構わないが必ず二つ) を購入し、
その 合計価格がキャンペーン設定金額m円以下で、かつ最大となるような商品の組合せだった場合、
その商品を無料で手に入れることができます。
設定金額が23150円、商品は3つ(シュークリーム12,000円とスルメイカ17,000円、大根は11,120円)だった場合、
シュークリームと大根(合計23,120円)の組み合わせが無料になります。
すべての商品の価格と、イベント期間中の 各日のキャンペーン設定金額m円(キャンペーン日数分) が与えられるので、
各日のキャンペーン設定金額mに対し、上記ルールのもとでの最大値を計算するプログラムを作成する のがあなたの仕事です。
3名無しのひみつ:2013/12/21(土) 17:43:34.38 ID:95ncFTcB
バッカモン!
4名無しのひみつ:2013/12/21(土) 18:25:57.87 ID:t6uHD2iW
前もって言っておくが、ITでもSI系とWEB系では働き方が違うからな。
IT土方wwwwとか、あんま2chで聞きかじったこと言ってると恥ずかしいよ。
5名無しのひみつ:2013/12/22(日) 02:09:56.82 ID:wf4BNnFQ
これ真面目にやる気がしないな。よく提出したもんだ。
野田さんの下りは何か意味あるの?
6名無しのひみつ:2013/12/23(月) 16:36:05.97 ID:HZyzQpP2
課題によっては非ノイマン型処理が最速になったりして
7名無しのひみつ:2013/12/23(月) 20:10:08.66 ID:y+c0rT6s
東京だよハッカソン
8名無しのひみつ:2013/12/27(金) 18:59:21.91 ID:MQrQkH4y
野田さんが一枚ずつ脱いでくれるのか(;´Д`)
9名無しのひみつ:2014/01/15(水) 20:53:15.54 ID:zEWnWwES
スレ立てたのギノ社員さんだと思うんだけど、なんかスレ盛り上がらないね?
ふと思ったが、paizaって収益源何なの?
転職を成功させたときの、企業側から入る成功報酬のみ?それってキツくね?
10名無しのひみつ:2014/01/16(木) 18:25:30.85 ID:qR+XDX3k
>>9
エンジニア採用ご担当者の方 | IT/Webプログラマー、エンジニア 転職のpaiza [パイザ]
http://paiza.jp/guide/keisai

これ読む限り
初期費用・掲載費用が0円なわけじゃなさそうだが、オープニングキャンペーンだから今は0円というだけで
11名無しのひみつ:2014/01/16(木) 18:35:26.27 ID:qR+XDX3k
そもそも何で科学ニュースにこのスレ立てたんだ?PCニュースのほうが人が来たんじゃないのか?
12名無しのひみつ
POH Vol.1、あの入力そのまま出力するクズなやり方ってありなの?