POH4で全23言語にチャレンジ!
はい。下記リンクの件です。
マンガ版「エンジニアでも恋がしたい!」〜転職初日にぶつかった女の子が同僚だった件〜|paizaオンラインハッカソン4 Lite
ほとんど病的と言っても良いくらいやっとりましたよ。
問題自体が簡単すぎるおかげで、とりあえず全23言語チャレンジ完了です。
Clojureだけ、ずっと解らないままだったのですが、
Twitter上に超親切なかたがいて、助けてもらいなんとか通すことができました!
以下、ミッション3のTest case 5の処理時間とともに、
結果のリンクを貼り付けてておきます。
ソース一通り公開しておきました。
アルゴリズムは、言語や標準入力のやりかたによって、
しゃくとりだったり、累積和だったりバラバラです。
0.09秒 : https://paiza.jp/poh/enkoi-ending/ff75b38a
ソース : https://paiza.io/projects/bEUdjAQ8iSKy6vIUm1GSEw
0.16秒 : https://paiza.jp/poh/enkoi-ending/8196935b
ソース : https://paiza.io/projects/TmfoNeOFIFAE3COWOH7pXA
0.13秒 : https://paiza.jp/poh/enkoi-ending/f9f12b0f
ソース : https://paiza.io/projects/CKCmJOuPWKXL5kpcdP1Miw
Rubyは途中でバージョンが変わって、必ず0.08秒かかるように
変わってしまって、後のほうに初めてやった人が気の毒です。。
0.17秒 : https://paiza.jp/poh/enkoi-ending/59724b97
ソース : https://paiza.io/projects/I3y3ztfHTPhAf8yWF2naoQ
0.15秒 : https://paiza.jp/poh/enkoi-ending/786c2489
ソース : https://paiza.io/projects/l-CwrPKWQspDtCatWwkB0A
- C
0.01秒 : https://paiza.jp/poh/enkoi-ending/8cebe03e
ソース : https://paiza.io/projects/kRXcQFMVNjIcSFs7isRChA
0.01秒 : https://paiza.jp/poh/enkoi-ending/3254e3ba
Cとほぼ同じなのでソースは略。paiza.IOに残っていない。。
0.02秒 : https://paiza.jp/poh/enkoi-ending/56c9cf8e
ソース : https://paiza.io/projects/_s76k5GC9w6ZaFiXzws-0g
0.09秒 : https://paiza.jp/poh/enkoi-ending/5a3d170f
ソース : https://paiza.io/projects/Cj4umRYamCMHN4pesj2mAQ
1を掛けて無理やり数値化するの大好きです(笑
0.01秒 : https://paiza.jp/poh/enkoi-ending/2b41c9d4
Cと全く同じソースで通ります。。
アルゴリズム問題において、この言語は必要なんでしょうか?(笑
0.35秒 : https://paiza.jp/poh/enkoi-ending/6a563ea3
ソース : https://paiza.io/projects/8hzxdjvX-b77UKBLrWoeSA
Java to Scala converter というサイトがありまして。。
翻訳して少し手直ししただけです。
- Go
0.05秒 : https://paiza.jp/poh/enkoi-ending/920089b6
ソース : https://paiza.io/projects/lLcvMQJM-Se0rcVs77pzsQ
0.03秒にする方法があるみたいですが、よく解っていません。
0.09秒 : https://paiza.jp/poh/enkoi-ending/d9c375aa
ソース : https://paiza.io/projects/zCNqv-0anx5KJMGFbx2k1g
Haskell解ってくると楽しいですね!
実は記録を出した0.09秒のソースはテストケース5まで通るものの
少し間違ってるところがあって、正しく直したら、
0.1秒にしかならない。。(ソースは正しくしたほうです。)
今年は、もっとHaskellを勉強しようと思っています。
0.15秒 : https://paiza.jp/poh/enkoi-ending/1fd67f46
ソース : https://paiza.io/projects/RRZcGBPfGqc5VCvEiECguA
今回はJavaScriptからの自動翻訳に頼らず、普通に書きました。
0.19秒 : https://paiza.jp/poh/enkoi-ending/cab6c113
ソース : https://paiza.io/projects/jK7Eyi3zGprK1SL_kL3RnA
AWK呼び出しってアリなんですっけ?
純粋Bashだと通らないような気がするんですが。。
1.93秒 : https://paiza.jp/poh/enkoi-ending/a99f4bc9
ソース : https://paiza.io/projects/yMHcqh0Fav5xYVlAo0cVnw
猛烈に難しそうなイメージがあったのですが、
習得自体はHaskellより楽かも。
苦戦の末なんとか通せました。。なんで、こんなに遅いの??
"~d" をN回繰り返して標準入力という冗談みたいなことを試したら
通りました(笑
- R
0.53秒 : https://paiza.jp/poh/enkoi-ending/c5140d65
ソース : https://paiza.io/projects/TOqbDLvVBDlImV2zSBXYFg
Rは気持ち悪いくらい短いコードで書けるが、
フツーの手続き型言語の発想なので超遅い。
どうやら行列演算にすると早いらしいですが、よくわかってません。。
0.11秒 : https://paiza.jp/poh/enkoi-ending/b5517697
ソース : https://paiza.io/projects/tbAseaAhXM1RvasJGfyYEg
たぶんですが、
COBOLはケース3の最後のデータに改行が入っていないため
一桁落ちた状態で標準入力されます。よって補正が必要です。
0.02秒 : https://paiza.jp/poh/enkoi-ending/a5cda8eb
ソース : https://paiza.io/projects/BV4wa7R9845cn3zWVqB43A
- F#
0.12秒 : https://paiza.jp/poh/enkoi-ending/82789068
ソース : https://paiza.io/projects/HcGxYtJTOkwx1-HiwawO1w
全然関数型言語っぽくなくってスミマセン。。
- Python3
0.16秒 : https://paiza.jp/poh/enkoi-ending/f9714fe2
ソース : https://paiza.io/projects/TCxJngWH9f5RxXJObe0gXA
1.76秒 : https://paiza.jp/poh/enkoi-ending/e0f886e9
ソース : https://paiza.io/projects/uVT0qpoB8ra9lh6E8TKDWw
学生のときに少しだけLISPをしたことがあるので、
私にとっては懐かしい感じですね。
ずーっと3秒以内に処理できないままだったのですが、
助けて頂いてなんとかクリアしました。
- D
0.01秒 : https://paiza.jp/poh/enkoi-ending/eb951610
ソース : https://paiza.io/projects/0InvEumQQVkyC9jiy-Po4w
まだまだ高速化目指しますよっ。
ようやく無事に終わりました。全言語クリアできて、めでたしめでたし。
・12/28 R,COBOL,Bash を少しだけ高速化しました。
・12/29 D,Go,Python,Python3,Perl を少しだけ高速化しました。
・12/31 Perl を少しだけ高速化しました。
・1/1 あけおめです。Bash を少しだけ高速化しました。
・1/6 Erlangがずっとケース4以降通せなかったのですが、クリアできました!
・1/6 Clojureもずっとケース4以降通せなかったのですが、クリアできました!