雀巽の日記帳

雀巽が綴る日常の記録

PythonでTopCoderに参戦したい!

概要

PythonTopCoderSRM したい!という人や、以下のような人が対象です。

  • TopCoder に参加したい!
  • C++ 書いたことない!
  • Java 書いてたらストレスで死ぬ!
  • C# は宗教 (OS) 上の理由で厳しい!
  • Python しか俺には残されて無い!!

というわけで、TopCoder 環境構築ネタ第4弾です。

関連記事

本当に TopCoder 環境構築ネタなのか!?というタイトルの記事もありますが、実は完全に TopCoder ネタです。

上記の記事は IDE で参戦したい!という人は参考になるかもしれません。

注意事項

Python 実行速度が遅いため、ループ回数 (計算量) に注意を払う必要があります。

C++ ですとおおよそ 1秒間で 108 回のループが回せるそうです*1が、噂によるとPython だと、その 1/10 〜 1/100 になるそうです。

Python でどの程度の計算量まで大丈夫か、詳しい人がいたら教えてください!

環境構築

TopCoderPython で挑むには、おおよそ以下の3つが必要です。
最後の1つは好みの問題ですが、何かしらのプラグインがないと正直しんどいです。

  1. Python 2
  2. TopCoder Arena
  3. Greed (TopCoderプラグイン)

OS は Mac OS X を使っています。

Python 2

TopCoderPython は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

TopCoder を快適にしてくれるプラグインです。

完全に丸投げしますが、以下を参考にしました!参考にしましょう!

最後に、Arena でのデフォルト言語を Python にしておきましょう。

Options -> Setup User Preferences -> Editors -> Default Language

さぁ、PythonTopCoder を始めましょう!