スキマで暗躍する的な何か

このブログ書くたびにTwitterのフォロワーが減ってるような気がするんですが、たぶん気のせいです。

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以降通せなかったのですが、クリアできました!