Q8: 脱初心者に向けて、次は何をすればいいですか?
目標を設定しましょう
-
自分の実力と相談しながら、目標とするレーティング(もしくは、特定のレーティング帯に相当する色)と達成するまで期限を設定してみましょう。AtCoder社長のchokudaiさんによる、レーティングとアルゴリズムに関する実力の関係を説明した記事も参考になると思います。
注意
紹介している記事は、2020年6月下旬に更新されているものの、特定のレーティング帯については到達するまでの要求水準がさらに上がっている可能性があります。
-
コンテストで目標とする成績(パフォーマンス値)を設定してみましょう。有志が公開しているWebサービスを利用すると、簡単に計算できます。
-
また、コンテスト開催中に参加者のパフォーマンス値の推定値をリアルタイムで見られるスクリプトが公開されています。下の図は、左側がパフォーマンス値を、右側がレーティングの変動と前回との差分をそれぞれ表しています。
注意
初めてユーザスクリプトを利用される方は、スクリプトマネージャを事前にインストールしてください。
過去問を解いてコンテストに参加しましょう
-
公式が提供している「バーチャル参加」機能やAtCoder ProblemsのVirtual Contest機能を利用して、本番に近い環境で練習するのがおすすめです。
参考
AtCoder ProblemsのVirtual Contestを利用するときは、GitHubのアカウントが必要です。
-
競プロ典型90問 - 競技プログラミング・アルゴリズムに関する教育的な問題が常設コンテストとして、まとめられています。
- Qiita - コンテンツの活用方法
- GitHub - 解説やサンプルコード
- Googleスプレッドシート - 問題の難易度表(非公式)
解答の提出前に入出力例の確認をしましょう
-
AtCoder Easy Test v2 - 「問題」ページで、入出力例を使って素早くテストを実行できるユーザスクリプトです。また、自作のテストケースも実行できます。
- メリット1: ケアレスミスを減らし、不正解によるペナルティを受けにくくなります。
- メリット2: 解答が不正解の場合でも、境界条件を含むようなコーナーケースを素早く特定することができます。
- メリット3: 問題を正確かつ素早く解く力が身に付きます。これによって、高いパフォーマンス値(コンテスト当日の成績に相当)が得られやすくなります。
- デメリット: ツールの導入が難しいと感じる場合があります。ツールの作成者や有志が作成した記事を読んだり、他の参加者に質問したりしましょう。
注意
初めてユーザスクリプトを利用される方は、スクリプトマネージャを事前にインストールしてください。