【備忘】AtCoder入茶までやっていたこと

# サマリ
AtCoder（競技プログラミング）で入茶するまでやっていたことを備忘として残します。

# 背景
すでに入茶して長いのですが（一年３カ月ほど）、一応記録として残しておこうと思い、記事作成に至りました。
（け、決してネタぎれでは…）

# 対象読者
- AtCoderで入茶を目指している方（参考になるかわかりませんが）

# 前提
推奨：AtCoder、および競技プログラミングに関する基礎的な知識

# そもそも
この記事にたどり着いている方はご存じだとは思いますが念のため、、
競技プログラミングとは、[Wiki先生によると](https://ja.wikipedia.org/wiki/%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

> 競技プログラミング（きょうぎプログラミング、英: Competitive programming、略称: 競プロ）とは、 解くべきプログラミング課題が与えられ、プログラムを作成し、解くまでにかかった時間や正解数などを競い合う競技

とのことです。
ざっくり、数学チックな問題が出されて、それをプログラムでいかに早く・正確に解くかを競うものです。

競技プログラミングのサービスはいろいろありますが

https://guardian.jpn.com/creative_blog/popular_programming_competitions/

自分は日本では最も有名（と思っていますが）なAtCoderをやっています。

https://atcoder.jp/

競技プログラミングをやる目的としてはいろいろあるかと思いますが、
自分は「論理的思考力の強化」「プログラミングに触れる機会を増やす」「アルゴリズムを知る」「何かしら継続して取り組んでいるという実績を残す」あたりです。

AtCoderでは、実力を示す指標としてレーティングというものがあり、
（詳細は下記を参照ください。）

https://info.atcoder.jp/overview/contest/rating

定期的に開かれるコンテストに参加し、その時の成績をもとにレーティングが計算され、
レーティングの数値ごとに灰色、茶色、緑色…赤色と色分けがされているため、
その色になることを入茶、入緑、…と表現します。

本記事は、少し前（といっても１年以上前ですが）最初の壁である入茶をしたので、
そのあたりまでにやっていたことを記録しておこうと思います。

ちなみに、2024/10時点で、以下の成績です（入茶後が長いなおい…）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/0d572747-3f6d-e126-0294-268fac1d2cd7.png)



# やっていたこと

### APG4b（AtCoder Programming Guide for beginners）を解く
AtCoderの公式ページに、基本的な知識、文法、アルゴリズム等を勉強できるページがあります。

https://atcoder.jp/contests/APG4b

自分もC++の言語どころかプログラミング自体知識があまりなかったため、
まずはここから始めました。

（自分もそうでしたが）初心者の方からするとここでもなかなか大変かと思いますが、
自分はC++の記法をここをベースにしているので、
ひと踏ん張りして頑張ってみるのはありかと思います。

### ABC（AtcoderBeginnerContest）への参加
ほぼ週に１回開催される、ABC(AtcoderBeginnerContest）というコンテストに参加します。
結局のところこれですよね（おい
今でもできるだけ続けています。
正直、現在進行形で下がってきているので心がめげているのですが、
「失敗したところでやめてしまうから失敗になる。 成功するところまで続ければそれは成功になる。」 
という松下幸之助さんの言葉を胸に、ただひたすらに継続しています。

### AtCoderProblemsを解く
公式サイトでも紹介されている、有志が運営している問題復習サイトです。

https://info.atcoder.jp/more/contents/problems

Boot camp for Beginners
といって、Easy、Medium、Hardの３レベルで１００問ずつ過去問を分類して解くこともできるので、
Easy、Mediumは全部やりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/335813/eaacfe6d-fe8d-f0ff-4534-d247d69bc481.png)

### アルゴ式
アルゴ式というプログラミング学習サービスがあります。

https://algo-method.com/


競技プログラミングのためのアルゴリズムの学習カテゴリも多いので取り組んでいます。
まだ全部は終わっていないです、一日一問題ぐらいでちびちびとやっています。

### （やりかけ）競技プログラミングの鉄則本を読む
https://www.amazon.co.jp/%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E9%89%84%E5%89%87-Compass-Books%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E7%B1%B3%E7%94%B0-%E5%84%AA%E5%B3%BB-ebook/dp/B0BDZGDM9J/ref=sr_1_1?adgrpid=140878461260&dib=eyJ2IjoiMSJ9.-Idfji3ysfwFgnSB9bymqQSE8Rl6R0mnOwGigdbF8tXD0IGv-kx7MyWCpnydqEkOX8IUguPP4LnMq8QdwNjEuHz8syXOqZzRF_A_CgwrGhvWckGM8Nx6roL9OD3aS04_2bm0SYIVcQhX6qAPqjcTlN95Hs6VHPsSzNokPJcOy2MmxMWHBunALQxY3iGtx0zux-sL4CSzoePXC2qekeSbqxRv1Zrd1M08xaU5Ir1dZDxW28z76nYzIJApJxUADQXgjFjsnxpyO6I57cmwW4xhGMt3OgJQpSAko7sSxGHZqyM.q6nU-YR32jyUJ_5LAiTnxWeUeB0-pEED201KEKihQcs&dib_tag=se&hvadid=679023005038&hvdev=c&hvlocphy=9198811&hvnetw=g&hvqmt=e&hvrand=4154324716930697451&hvtargid=kwd-1749199528515&hydadcr=27265_14738572&jp-ad-ap=0&keywords=%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E9%89%84%E5%89%87&qid=1730016383&sr=8-1

有名な本があるのですが、こちらを読んで鉄板のアルゴリズムを理解しようとしています。（現在進行形）
まだ途中なので、繰り返して読み、実際に問題を解くことで身につけたいと思っています。
（もう歳か（？）なかなか一冊読み終えるのが高いハードルで…（おい））

### 備考（環境面）
もし今本記事を読んでいる方で完全初心者の方がいれば環境面についてお役に立てればと思い…
自分はまずは環境構築に時間をかけるよりはまずは試せるほうがいい、という思いから
Webブラウザ上で競技プログラミングをやっています。（特にローカル環境でエディタを使ったりしていません）
なので自分はAtCoderProblemsやABCのコンテスト等でコードを試したいときはAtCoderのコードテストを使っています。

https://atcoder.jp/contests/apg4b/tasks/APG4b_ak

もう少し自分の中でノウハウがたまってきたら入緑したぐらいに共有させていただこうと思います。（いつになるやら…）

# まとめ
恥ずかしながら入茶してから一年以上茶色の状態が続いており（何なら下がっている）、
あまり参考になるかはわからないのですが、記録しました。

あまり時間が取れないということを言い訳にしがちなので、
もう少し復習したり、しっかり鉄則本を読み込んだりすることで力をつけていきたいと思っています。

「諦めたらそこで試合終了ですよ」という安西先生の言葉を信じて、
入緑までもう少し粘ります…！
仲間の方は一緒に頑張りましょう。。X（旧Twitter）は @san_bay3　です。
（結果だけをちょこちょこつぶやいているだけですが）