転職してRubyを使うようになったので、言語に慣れる目的で競技プログラミングをやってみようかなーと思い、オンラインで受けられる初心者向けコンテストに参加してみた結果、惨敗…
参加したコンテスト
参加したのはAtCoderという会社が主催している「AtCoder Beginner Contest 118」
競技プログラミングって海外のサイトが多く、問題文なども英語の場合が多いんですが、AtCoderは日本企業なので全て日本語で書かれているのが嬉しいです。
結果
順位 : 2446位(2839人中)
得点 : 300点
パフォーマンス : 144
問題 | 結果 | 回答時間 |
A | ○ | 7分54秒 |
B | ○ | 85分11秒 |
C | ✕ | – |
D | ✕ | – |
4問中2問正解でしたが、2問目で時間を使いすぎてしまったので、パフォーマンスが低くなってしまいました。
それにしても2839人中2446位というのは・・・学生が多いはずのコンテストで曲がりなりにも本職の人間がこの成績ではマズイ。
反省
標準入力に時間を取られた
実務で標準入力のコードってほとんど書かないのもあり、スペース区切りで複数の整数や2次元配列を受け付ける方法がわからず、開始直後からGoogle検索してました。
競プロの入力パターンは限られているので、使う言語ごとに標準入力コードをテンプレ化して持っておくのが良さそうと感じました。
単純にRubyの文法に慣れてない
慣れてない言語での配列操作って難しいですね。Webアプリだと多次元配列をゴリゴリ書くケースが少ないのもあり、添字指定ミスやらループ変数初期化漏れとかやらかして時間浪費してしまいました。
間違ってる場所を探すが難しい
『よっしゃ!これで行けるやろ!』
って意気揚々と提出してWA(Wrong Answer)判定を食らってからが辛かったです。
どこが悪いかは伏せられて、回答が間違っているという事しか伝えられないので、どこが悪いのかを自分で探す必要があります。
実務だと少なからずエラーメッセージも出るし、間違った出力結果も見えるので、どこが悪いかの推測もしやすいんですが、糸口がないのがここまで辛いというのは予想してませんでした。
次に向けて
このままだと悔いが残るので、ちょっと本腰入れて臨んでみます。
やるべき事は色々ありますが、とりあえずは次の3つをやりながら次回開催のコンテストに備えようと思います。
- 入出力のテンプレを頭に叩き込む
- Rubyの配列操作や繰り返しの構文に慣れる
- AtCoder Problemsで過去問消化
5回以内ぐらいには灰色脱出したいなぁ。
ではでは。