はじめに
競技プログラミングを続けていると、
「なんでこの問題が解けなかったんだっけ…?」
「最近あまり成長を感じないな…」
そんなモヤモヤを抱えることが多くなってきました。
自分は振り返りが下手で、時間が経つと原因や学びをすぐ忘れてしまうタイプなので、
思考を整理してあとで見返せるような精進記録のテンプレートを作りました。
せっかくなので記事として一応共有しておきます。
精進記録をつける理由(自分の場合)
-
思考を言語化して整理するため
→ どこで詰まったか、何が甘かったかを残すと次に似た問題を解くときに役立つ -
成長を可視化してモチベーションを保つため
→ ACや失敗の積み重ねを見返せると少し前よりは進んでるのがわかる -
QiitaやZennでまとめる練習になる
→ 自分の言葉で説明する癖をつけておくと後々楽
テンプレートの使い方
- 1問ごとにまとめるか、1日分をまとめるかは気分で
- Markdown形式なのでGitHubで管理しやすい
- まとまったらQiitaやZennに貼ると形に残る
精進記録テンプレート(Markdown)
# 精進記録(YYYY/MM/DD)
## 解いた問題
| 問題名 | コンテスト | 難易度(diff) | 結果 |
|--------|------------|--------------|------|
| ABC123 C | ABC123 | 緑 | AC(30分) |
## 解法概要
- 問題のタイプ:全探索、しゃくとり法 など
- 使用アルゴリズム:bit全探索、累積和 など
- 実装メモ:
- 制約の確認と愚直解
- ボトルネックの発見と計算量削減
- 実装でハマりやすい箇所
## 詰まったポイント・原因
- 例:境界条件の off-by-one で WA
- 原因:配列の長さをちゃんと確認してなかった
## 解説・学び
- 公式解説:[AtCoder Editorial](https://atcoder.jp/contests/abc123/editorial)
- 学んだこと:しゃくとり法の典型パターン
- 他の人のコード:XXXさん(URL)が参考になった
## 類題・再挑戦予定
- 類題メモ:
- ABC100 D(累積和+貪欲)
- ARC050 B(しゃくとり法)
- 再挑戦予定:YYYY/MM/DD
## 所感・次に意識すること
- C問題の処理速度はちょっと上がったかも。
- 次はD問題も臆せず取り組んでみる。
おわりに
自分用に作ったものですが、
「似たようなことで困ってる人がいたら適当にパクってもらえれば」くらいの気持ちで置いておきます。