こんにちは、とらのすけです。
早速ですがTopcoderで、すこし遊んでみました。
サイトの構成がちょっと複雑で、練習問題に
たどり着くのに苦労しましたが、
ようやく、練習問題っぽいものにたどり着くことが出来ました。
また、コードを書くツールの使い方も最初はイマイチわからず
四苦八苦しましたが、何とか理解できました。
今回の記事は、練習問題まで、たどり着く方法と
コードを書くツールの使い方を簡単に説明したいと思います。
DashBordページを下にスクロールして
SINGLE ROUND MATCHESというエリアにある、
「PRACTICE ON PAST PROBLEM」の
「PRACTICE PROBLEMS」をクリックします。
すると、ARENA BETAという画面?ツール?が
立ち上がるので、画面の上にある、「鉛筆アイコン」を
クリックします。
この画面、おっさんにはフォント小さくて見にくいです。
すると、Practice Problemのリストが表示されます。
今現在、4803個の問題があるようです。
この画面もフォントは小さいわ、文字のコントラストが低いわで
見にくくて仕方がありません。
Diffcultyというカラムがあるので、難易度でソートできそうなので
難易度の低そうなのを試しにやってみることにします。
Difficultyでソートして、一番最初に出てきた問題
(多分一番簡単な問題?)をやってみることにしました。
Problem Nameのカラムで、Subutitute」をクリックします。
しばらく待つと、問題?が起動します。
画面上下に2つのエリアがあります。
上がProblem Area、下がCoding Areaです。
どうやら、Problem Areaには問題文が書かれていて
Coding Areaにコードを書くようです。
問題文は以下の5つで構成されています。
・Problem Statement:問題の説明
・Definition:作成するクラス、メソッド、引数、戻り値の定義
・Limit:制限?ですかね。Time LimitとMemory Limitとあるので、処理時間と使用メモリの制限かな?
・Constraints:制約条件・引数で与えられるパラメータの条件。
・Examples:引数と戻り値の例が書かれています。
問題文が英語なので、イマイチわからなかったのですが
Examplesに書かれている結果と問題文で判断するに、
codeで与えられた文字列を一文字づつみて
その文字が、Key文字列の何番目にあるか?
で数値を作っていくという問題のようです。
しかし、この黒字の背景に薄いグレーの文字が読みにくい。。。
とりあえず、指定されたクラス名、メソッド名で
外側をつくってみました。
「この「Complie」ボタンを押すとコンパイルできんのかな?」
と思って押してみると、ポップアップが出てきました。
「おぅ、コンパイルエラーだ、何々。。。1行目。あ、PublicのPが大文字だ。」
しばらく、コーディングから遠ざかっているとはいえ
これは、ちょっと酷すぎです。。。
修正をして、再度コンパイルと。。今度はうまくいきました。
画面の右のほうを見ると「Test Panel」というのがあります。
「ここからテストできるのかな?」
と押してみると。それっぽいパネルが立ち上がりましたので
Check Allを選んで「Run Test」を押してみます。
実行結果が出ました。
中身を実装していないので当然、テストに失敗しています。
何となく、雰囲気がつかめたので
「メソッドを実装」⇒「コンパイル」⇒「テスト」
を繰り返しながら中身を実装していきます。
一応Exampleのテストはとおるようになりました。
本来であれば、テストケースを追加するんでしょうが、
とりあえずここまでにして、「Submit」を押してみることにしました。
ポップアップが出てSubmitしていいかを聞いてくるので「Yes」を押すと
なにかスコアのようなものが出てきました。
いったいこれが何を意味するのか?よく分かりません。
ところで、、、模範解答ってどこかにないんですかねえ。
見つけました。ここから、クラス名で検索すると
過去のWinner?のコードが見れます。
今回は、練習問題にたどり着く方法と
試しに練習問題をやってみました。
やってみた感想です。
・問題文のフォントのコントラストが低すぎて、読みにくいのが気になる。
・英語で書かれた問題の意味を理解するのが大変。
・Submitした後に出てくる点数みたいなものは何?
・模範解答はどこかにあるのか?がわからない。
疑問点は、もう少しやっていったらわかるようになるかもしれません。
それではまた。
早速ですがTopcoderで、すこし遊んでみました。
サイトの構成がちょっと複雑で、練習問題に
たどり着くのに苦労しましたが、
ようやく、練習問題っぽいものにたどり着くことが出来ました。
また、コードを書くツールの使い方も最初はイマイチわからず
四苦八苦しましたが、何とか理解できました。
今回の記事は、練習問題まで、たどり着く方法と
コードを書くツールの使い方を簡単に説明したいと思います。
練習問題へのたどり着き方
DashBordページを下にスクロールしてSINGLE ROUND MATCHESというエリアにある、
「PRACTICE ON PAST PROBLEM」の
「PRACTICE PROBLEMS」をクリックします。
すると、ARENA BETAという画面?ツール?が
立ち上がるので、画面の上にある、「鉛筆アイコン」を
クリックします。
この画面、おっさんにはフォント小さくて見にくいです。
すると、Practice Problemのリストが表示されます。
今現在、4803個の問題があるようです。
この画面もフォントは小さいわ、文字のコントラストが低いわで
見にくくて仕方がありません。
Diffcultyというカラムがあるので、難易度でソートできそうなので
難易度の低そうなのを試しにやってみることにします。
練習問題をやってみた
Difficultyでソートして、一番最初に出てきた問題(多分一番簡単な問題?)をやってみることにしました。
Problem Nameのカラムで、Subutitute」をクリックします。
しばらく待つと、問題?が起動します。
画面上下に2つのエリアがあります。
上がProblem Area、下がCoding Areaです。
どうやら、Problem Areaには問題文が書かれていて
Coding Areaにコードを書くようです。
問題文は以下の5つで構成されています。
・Problem Statement:問題の説明
・Definition:作成するクラス、メソッド、引数、戻り値の定義
・Limit:制限?ですかね。Time LimitとMemory Limitとあるので、処理時間と使用メモリの制限かな?
・Constraints:制約条件・引数で与えられるパラメータの条件。
・Examples:引数と戻り値の例が書かれています。
問題文が英語なので、イマイチわからなかったのですが
Examplesに書かれている結果と問題文で判断するに、
codeで与えられた文字列を一文字づつみて
その文字が、Key文字列の何番目にあるか?
で数値を作っていくという問題のようです。
しかし、この黒字の背景に薄いグレーの文字が読みにくい。。。
とりあえず、指定されたクラス名、メソッド名で
外側をつくってみました。
「この「Complie」ボタンを押すとコンパイルできんのかな?」
と思って押してみると、ポップアップが出てきました。
「おぅ、コンパイルエラーだ、何々。。。1行目。あ、PublicのPが大文字だ。」
しばらく、コーディングから遠ざかっているとはいえ
これは、ちょっと酷すぎです。。。
修正をして、再度コンパイルと。。今度はうまくいきました。
画面の右のほうを見ると「Test Panel」というのがあります。
「ここからテストできるのかな?」
と押してみると。それっぽいパネルが立ち上がりましたので
Check Allを選んで「Run Test」を押してみます。
実行結果が出ました。
中身を実装していないので当然、テストに失敗しています。
何となく、雰囲気がつかめたので
「メソッドを実装」⇒「コンパイル」⇒「テスト」
を繰り返しながら中身を実装していきます。
一応Exampleのテストはとおるようになりました。
本来であれば、テストケースを追加するんでしょうが、
とりあえずここまでにして、「Submit」を押してみることにしました。
ポップアップが出てSubmitしていいかを聞いてくるので「Yes」を押すと
なにかスコアのようなものが出てきました。
いったいこれが何を意味するのか?よく分かりません。
ところで、、、
見つけました。ここから、クラス名で検索すると
過去のWinner?のコードが見れます。
まとめ
今回は、練習問題にたどり着く方法と試しに練習問題をやってみました。
やってみた感想です。
・問題文のフォントのコントラストが低すぎて、読みにくいのが気になる。
・英語で書かれた問題の意味を理解するのが大変。
・Submitした後に出てくる点数みたいなものは何?
疑問点は、もう少しやっていったらわかるようになるかもしれません。
それではまた。
コメント