読者です 読者をやめる 読者になる 読者になる

kazurof weblog

技術ネタのメモを並べます

POH lite でリポビタンD100ml×50本のセットが当選してしまいました。

f:id:kazurof:20140912222332j:plain

タイトルの通りで他の参加された方には全く申し訳ないのですが、POH lite でリポビタンD100ml×50本のセットが当選してしまいました。おおおおおお。*1

f:id:kazurof:20140913215845j:plain

ステッカーもついてきました。むおおおおおお。

天才火消しエンジニア霧島「もしPMおじさんが丸投げを覚えたら」|paizaオンラインハッカソンLite

で、このまま何もしないのもどうかと思われたので、もう一つネタを振ってみたいと思います。もっと変わった面白い解き方はないものかと日頃考えているのであります。


POH lite ではいろいろな言語が使えます。Beta版も含めて20言語あってなかなかすごい感じですね。 私としてはここにない新しい言語で解いてみようと考えました。AWKです。

AWK - Wikipedia

言語には流行り廃りがありますのでご存知ない方もいらっしゃるかと思います。簡単に説明すると、「比較的言語仕様の小さなプログラミング言語の中でも、速攻性、柔軟性、機能性において最右翼に属する逸品」です。*2

プログラム

sample code for https://paiza.jp/poh/kirishima wit ...

実行結果

kazurofさんの採点結果[100点] 完璧ぃぃ!|paizaオンラインハッカソンLite

実行時間は 0.08 秒から3.45 秒 の範囲です。Test case 7 以外ではJavaScript over Java(以前やったPOH lite を JavaScript (Nashone)でやってみた。 - kazurof weblog)よりも速いのが興味深いですね。合計時間ではAWKの方が速いということになります。

やってみた感想など

AWKはその標準入力の扱いに特徴がありますので、それを活かす方向にしてみました。具体的には以前のようにソースコード中に値を展開するのではなく、Javaが受け取った標準入力の内容をそのままAWKに渡す形です。言語ごとに特徴がありますのでそれを活かせたかなと。

あと、配列の扱いが微妙に癖があるので、(連想配列だったり長さを取れなかったり)そこもちょこちょこと修正しました。

paizaでコードを書いた人は今までにたくさんいると思いますが、AWKで書いた人は私が初めて(多分)ではないのかと一人自己満足に浸っております。えっへん。

同時に、AWKで書くとかこんな馬鹿馬鹿しいことをする人は私が最後なんじゃないかなあと思っています。寂しくなんてありません。ええちっともありませんとも。

でもこれ、本当はやばいのではないかとも思います。実行環境上のawkとか/bin/sh とか動いちゃうわけですよ。私は uname -a とか ls / とかやって怖くなってきたのでもうやめておきました。ファイルシステムを見に行ったら中を開けるかもしれないし、もしかしたら霧島京子壁紙の.aiファイルもあるかもしれない。本採用の候補となっていたファイルとか、絵師さんの習作で作ったあんな画像やこんな画像もあるかもしれない。

いやいやいやいや。やばいやばいやばい。

で、一応念のため運営事務局さんに確認したら、「ブログ投稿は問題ないが、今後は動作保証しかねる。」ということでした。今は動くかもしれませんが、そのうち動かなくなるかもしれません。

というわけで、今リポビタンDを美味しく頂いているところです。さすがに今後も当選するとは思えませんがまたチャンスがあったら参加してみようと思います。 私からは以上です。

f:id:kazurof:20140913233941j:plain

*1:箱が少し開いているのはうちの子(4歳女)が中を確認したいとわがままを言ったから私の帰宅を待たずに開けたんだそうです。ちなみに配達時は嫁の母もいたらしく、嫁「もらってけば?」嫁母「いーよいーよいーよ」という会話があったそうです。おとうさんが頑張って懸賞を当ててもところがどっこいこのような脅威に晒されるのが現実です・・!これが現実・・!

*2:ここから引用 

AWKを256倍使うための本 (Ascii 256倍)

AWKを256倍使うための本 (Ascii 256倍)