0. はじめに
こんにちは、Shunta です。
ABC268 にて 入茶 し、ABC332 にて 入緑 しました!!
入茶記事を書いていなかったのでそれと併せて書くことにしました。
競プロ界隈では、X に色変投稿すると数多くの方からいいねやお祝いコメントを頂けるので嬉しいですね!
1. スペック(入緑時)
- 情報系の大学 3 年
- 数学検定準 1 級、基本情報技術者を保有
- 競プロは Python がメイン
2. 2019 年:AtCoder を始めたきっかけ
AtCoder を始めたのは 2019 年 8 月 24 日です。
一般的に友人や先輩、先生からの紹介で AtCoder を始めると思いますが、私の場合は特殊でした。数学が好きだったので X で数学をやっている人と繋がっていました。
数学界隈の TL に競プロの話が流れてくるようになり、どんなものなのか気になって始めました。とはいえ、プログラミングのプさえ知らない状態だったので独学で Python の勉強をすることにしました。
当時の ABS で提出した Python の コード を見てみましょう。
a = input("please number")
b, c = map(int, input().split())
s = input("please word")
sum = int(a) + b + c
print({} {}.format(sum, s))
標準入力でわざわざ please number と聞いているのが可愛いですね w
本当にプログラミングのプさえ知らない状態でした。
やはり、難しいと感じたからなのか半年程度でやめてしまいましたが、それから 3 年後に再開するとは思いませんでした。
3. 2022 年上半期:AtCoder を再開したきっかけ
私が大学 2 年の頃に学科内でも競プロが認知されるようになり再開しました。運の良いことに学科内での競プロ勉強会も開催され、モチベーション向上に繋がりました。
大学 1 年の頃に授業で Java を勉強したこともあって、2019 年の頃に比べるとプログラミングの知識は身についていました。やはり、基本って大切ですね。
4. 2022 年下半期:入茶!!
入茶するために必要なことはプログラミングの基本を身につけることと、AtCoder に慣れる(参加回数を増やす)ことだと思います。特に、C 問題を解けるようになることが重要だと思います。
5. 2023 年上半期:アルゴリズムの勉強
入茶してからは、アルゴリズム力がないと厳しい問題に遭遇することが多くなりました。
アルゴリズムを勉強する上で、けんちょんさんの 鹿本 は良かったです。
入緑までに身につけたアルゴリズム(習熟度は省略)
- bit 全探索
- 二分探索
- BFS(幅優先探索)
- DFS(深さ優先探索)
- 累積和
- DP(動的計画法)
- 素数判定
6. 2023 年下半期:入緑!!
入緑するために必要なことは A・B・C の 3 問の早解きか、A・B・C・D の 4 問を解けるようになることだと思います。そのために次のことを心がけました。
- A 問題や B 問題を沢山解く
- コンテスト終了後に自分の解法を X に投稿する
- 周りにいる競プロ er と解法についてアウトプットし合う
- 競プロ勉強会に参加
7. AtCoder に取り組んだ結果、起きたこと
7.1 他言語に触れ始める
入茶してから Haskell など関数型言語を中心に様々なプログラミング言語を学ぶようになりました。他人のコードを見たり、公式解説のコードを見たりしているとどうしても他言語を学びたくなります。
提出数が 100 を超えている言語を挙げると次の通りです。
- C++
- Haskell
- Java
- PHP
- Python
7.2 コードを書く習慣が定着する
ABC コンテストは基本的に毎週土曜日に開催されているためコードを書く習慣が身につきやすいです。次第に毎週土曜日だけではなく、毎日書くようになりました。以下の画像を見てみると 157 日連続取り組んでいることが読み取れます。
7.3 アウトプットするようになる
次のような記事を書きました。
7.4 物事に対する考え方が変わる
競プロで養われたアルゴリズムそのものが直接役に立つ場面は少ないかもしれませんが、間接的にはめちゃくちゃ役に立つと感じています。物事に対する考え方が柔軟なものになったように感じます。
8. 今後について
学生のうちに入水を目指します。そのために必要なことは以下の 3 つを意識することだと思います。
- アルゴリズム力
- 早解き力
- 数学力
9. 最後に
競プロは楽しいぞ!!AtCoder 最高!
最後までお読みいただきありがとうございました!




