LoginSignup
1
1

More than 1 year has passed since last update.

プログラミング初学者がAtCoder茶色に到達するまでの学習ステップ

Posted at

自己紹介

当記事を閲覧してくださり誠にありがとうございます。

都内の私立大学経営学部に在籍しているさんちょと申します。

プログラミングを始めて半年ちょいのプログラミング初学者(Python)です。

はじめに

当記事はプログラミング初学者がAtCoderに登録して茶色(レーティング562)に到達するまでに行った学習ステップを簡単に記録したものとなっております。
スクリーンショット 2021-11-25 14.58.18.png

AtCoderとは

アルゴリズムに関する問題をプログラミングによって解き、解いた問題数や時間を競い合う競技プログラミングのコンテストを開催する国内最大級のサイト

ユーザーはコンテストの結果に応じてサイト内でレーティングされ、レーティングに応じてランク(色)が付されます。

レーティング ランク(色) ユーザー分布
2800- 上位0.2%
2400-2799 上位0.6%
2000-2399 上位2%
1600-1999 上位5%
1200-1599 上位10%
800-1199 上位20%
400-799 上位35%
-399 上位100%

※ユーザー分布は2021/11/25時点

学習ステップ

1. ABC(AtCoder Beginner Contest)に参加してみる

重要なことはAtCoderを体験してみることです。

  • ユーザー登録
  • AtCoder内で最も簡易的なコンテストABCに参加

現在の自分の実力を確かめてみましょう!

2. AtCoder Problemsで過去問

他ジャンルの学習法と同様にAtCoderでも過去問練習が重要です。

  • AtCoder ProblemsでUser IDを入力
  • UserのRecommendation機能をチェック
    →自分のレベル感に適した問題が自動的に提示

  • EasyとModerateに取り組んでみましょう!

  • 目安は1日3時間取り組んでEasy5問、Moderate2問程度

※Difficultは余力のある場合のみ取り組んでみて下さい。

3. 解法の記録

競技プログラミングで重要なことの1つとしてアルゴリズムの理解度があります。

アルゴリズムの理解度を高めるために過去問やコンテストで解けなかった問題の解法(自分の解法と正解の解法)を逐一まとめておきましょう!

@Anti-Division ABC137C問題

◎A以上B以下の整数でCでもDでも割り切れない数の個数

・自分の回答

①BをCで割った切り捨て数-AをCで割った切り上げ数

②BをDで割った切り捨て数-AをDで割った切り上げ数

if B>C*Dの場合

③BをC×Dで割った切り捨て数-AをC×Dで割った切り上げ数

回答:(B-A)-①-②+③

else

回答:(B-A)-①-②

・正解

問題の条件を満たすB以下の整数の個数-問題の条件を満たす(A-1)以下の整数の個数

問題の条件を満たすx以下の整数の個数は以下の式

x-(x//C)-(x//D)+(x//lcm(C, D))

※自分がわかる程度で簡潔に書くことがポイント!

4. 最後に

  • 毎週開催されるABCに必ず参加

※頻繁に参加することでレーティング伸び率が向上

  • A問題とB問題はできる限り早く解く
  • C問題は時間をかけて必ず解く

まずはA,B,C問題を必ず解けるようになりましょう!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1