TopCoderをはじめてみた

最近いろんなところでTopCoderのエントリを見かけるので登録してみた。

以下のWikiを参考に、登録した。

登録するには、いろいろ個人情報をいれなきゃいけないし、全部英語でちょっと萎えた。


なんとか登録して、アリーナを起動しようとしたら、なぜかFirefoxだとうまく起動できない。
だんだん面倒になってくる><
仕方ないのでSafariを使ったらうまく起動できた。


とりあえずPractice Roomに入って、200点問題を解いてみた。
簡単な英語しか使われていないし、よくわからなくてもExamplesってところに入力/出力の例が書いてあるのでなんとかなった。
でもやっぱり英語を読むのが面倒だった…。
内容としては秒数が渡されて、それをH:M:Sという形式にして出力するという感じ。
3661が渡されたら1:1:1だし、86399なら23:59:59という感じ。


DateやSimpleDataFormatを使うのか、あれはほとんどLongのミリ秒が基本だよなぁとか考えて、結局シンプルに割り算してみた。
焦りながら書いたので、とりあえず動くだけのいけてないコードだけど、記念に貼付けておく。

public class Time {
  public String whatTime(int seconds){
    int h = seconds / 60 / 60 ;
    int m = (seconds - h * 60 * 60 ) / 60;
    int s = (seconds - h * 60 * 60 - m * 60 );
    return new String(h + ":" + m + ":" + s);
  }
}

登録はちょっと面倒だけど、やってみるとなかなか楽しかった。
TopCoderはすごい人たちががりごり書く戦場かと思ってた。
こんなことを思っていたひとも多いのではないだろうか。
Practice Roomの問題はいろんな難易度があって、そこまで難しくない問題もあるので、ちょこちょこプログラミングの練習するのにいいなと感じた。
ちょっと気になっていたひとは、とりあえず登録して、簡単な問題を眺めてみるといいと思う。