メモ@inudaisho

2017/06/24 はてなダイアリーから引越 / 君見ずや出版

AtCoder の Python3 の最速実行コード (附) ハンガリアン記法

 なんか Python3 でAtCoderの過去問をやってると案外簡単にPython3 の枠内での最速実行コードが取れることが多い。たぶんゴリゴリやる人は c++ に行くせいだろうなとはおもいつつ、それでもなかなかやるなと自分で思っていたところ、こんなツイートをみつけてしまった。

 うーむ。単にサーバの処理能力が上がっただけか...

 Python3 は競技プログラミングではどうしても遅い結果が出てしまうが、遅すぎるわけではなくギリギリなんとかできるのでむしろこういうので遊ぶには丁度よいのではないかとおもう。ただ、昼間はあんまり速度出ない気がするのだが、AtCoderAWSの上で動いてるのでAWSが昼間混んでるからだろうか。意外と夜の方が出る気がするのはAWS、業務用途で使ってる人が多いからか...とおもったがそもそも AWS は世界中の人が使ってるので混む時間帯は複数ある事に気付いてしまった。ま、参考程度というところか。

 全然関係ないが、AtCoder 、最近よく見てるので背景の白さが目に来る。久し振りにアドオンをいじって背景を黒くした。それからハンガリアン記法は00年代末~10年代頭くらいに槍玉に上げられるようになって、C#マイクロソフトが推奨しなくなったのもあってあまり使われなくなったらしい。そーかー、まぁ00年代の真ん中くらいに覚えた技術だから時代遅れになってもしかたない とは思いつつも、そんならと a b x y ss みたいなのに全部変えてみるとこれはこれで読みづらい。かといってphp 的に this_variable_is_mine みたいなのはよけいに冗長になる。ハンガリアン記法的なものにしてると予約語とあまり被らないのと、バグとりのとき探しやすい。 x y i j 的な頻用変数とハンガリアン的な折衷謎記法でいいかという気になってきた。なお、変数名に漢字ひらがなも使えるのでこんなこともできる。

f:id:inudaisho:20181013075749j:plain

 まぁそもそも AtCoder で書く規模のものなら a b c x y z 程度で十分なのでいちいちこんな妙なものを入れなくてもいいようにはおもうが、コーディング規約とかないところで勝手にやってるんだから勝手にさせてくれ。ハンガリアン記法に対する反発の中にエディタにマウスあてたら中身分かるとか書いてるのもいるんだが、あいかわらず黒いターミナルの上の vim でシコシコ書いてるので、どこの世界の話だろうという気にもなる。

 ちなみに投げるのも入力例も出力例も全部コピペでやってる。さすがにローカルに置いたときは自動でテストできるようにはしてるが。いちいちコピペしてるからAB2問を10分に解くのはなかなかきつい。特にこのノートパソコンはタッチパッドの左クリックの接触がわるいのでなかなかつらい。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

チャールダーシュ - ハンガリアン・ジプシー・ミュージック

チャールダーシュ - ハンガリアン・ジプシー・ミュージック