PythonでTopCoderに参戦したい!
概要
Python で TopCoder の SRM したい!という人や、以下のような人が対象です。
というわけで、TopCoder 環境構築ネタ第4弾です。
関連記事
本当に TopCoder 環境構築ネタなのか!?というタイトルの記事もありますが、実は完全に TopCoder ネタです。
上記の記事は IDE で参戦したい!という人は参考になるかもしれません。
注意事項
Python 実行速度が遅いため、ループ回数 (計算量) に注意を払う必要があります。
C++ ですとおおよそ 1秒間で 108 回のループが回せるそうです*1が、噂によるとPython だと、その 1/10 〜 1/100 になるそうです。
Python でどの程度の計算量まで大丈夫か、詳しい人がいたら教えてください!
環境構築
TopCoder に Python で挑むには、おおよそ以下の3つが必要です。
最後の1つは好みの問題ですが、何かしらのプラグインがないと正直しんどいです。
OS は Mac OS X を使っています。
Python 2
TopCoder の Python は2系だそうなので、Python 2をインストールしておきます。
詳細なバージョン情報は雑魚過ぎて見つけることができなかったんですが、TopCoder 内で「Python version」と調べたところ、以下のような記事は発見できました。
Updated Python version to 2.6.6 (coming soon: 2.7.5)
Enhancements to the TopCoder Platform: Bigger Data, Cloud Elasticity, and Updated Languages
これ、2013年7月21日の記事なんだよね……今もこのままなのだろうか。Java とかで調べると Java 8になったよ!とかいう記事とかあるのに、Python だと何も出てこない……つまり、まだ 2.6.6 なんでしょうか。
まぁ大丈夫でしょ!ということで、とりあえず 2.7.9 入れておきました!!
pyenv のインストール
まずは Python のバージョン管理ツールである pyenv を Homebrew で入れました。
$ brew install pyenv $ echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bash_profile
Python 2.7.9 のインストール
pyenv を使って Python 2.7.9 をインストールしてデフォルトで使うバージョンに設定します。
$ pyenv install 2.7.9 $ pyenv global 2.7.9
TopCoder Arena
TopCoder への参戦は Arena と呼ばれる Java アプリを使って行います。ここからダウンロード!
ダブルクリックで起動できますが、個人的にターミナル上からさっくり起動したかったので、以下のようなスクリプトopen_arena.sh
を書いておきました。
#!/bin/sh javaws ContestAppletProd.jnlp > /dev/null 2>&1
Greed
完全に丸投げしますが、以下を参考にしました!参考にしましょう!
最後に、Arena でのデフォルト言語を Python にしておきましょう。
Options -> Setup User Preferences -> Editors -> Default Language