ダレ(デヨン)さんの本講義を受講しながら、私が感じた最も効率的な勉強法を共有します。
まずは一度ざっと問題を解きながら、講義を聴いてみてください。おそらく、ほとんどの人が「ただのアルゴリズム問題の解説講義だな」と感じるはずです。
重要なのは、まず聴きながら解けないと思ったら、解けるまで脳をいじめ抜くのではなく、講義を聴くことです。どうせ練習の段階なのですから、無駄に興味を失わせるほど脳を苦しめる必要はありません。「ダレさんはあんな風に解いたんだな〜」と流せばいいのです。(ただし、書き写すことは必要です。ここが重要です。)
本当の講義のキーポイントは2回目からです。2回目の受講時は、解説を聞かずにまず問題を解いてみてください。そして解きながら、コメントでもパッドでもいいので、図を描きながら進めてみてください。
Brute-force(全探索)で解き始め、一段階ずつ最適化していくのが核心です。
1. 最適化の過程で、なぜそのアプローチを思いついたのかを必ずどこかにまとめておいてください。一度答えを見たコードは頭から離れないものですが、自分を騙すつもりで、刻み込まれた最適化の思考プロセスでも構わないので、思考の因果関係を書き留めてください。
2. 解けない場合は、どの部分で次の段階へ進むのが止まってしまったのかを必ず詳しく書いてください。そして、講義を聴きながら、その段階を突破するダレさんの考えを書き留め、一緒にコードを写してみてください。暗記になってしまっても構いません。(完璧な理解と完璧な暗記は、自分の脳でも区別がつきません。)
3. 3回目を始める前に、これまで書いてきた自分の誤答ノートのようなものをしっかりと復習してください。そして、制限時間をEasyは20分、Mediumは40分、Hardは60分程度に設定し、LeetCodeで思考過程を口に出して説明するか、コメントで説明しながら解いてみてください。もし説明がスムーズにいかなかったり、詰まる部分があれば、それが弱点だという意味です。もう一度該当する問題の講義を聴き、LeetCodeの似たような類題を繰り返し解いてパターン化させることで、弱点を補完するのに役立ちます。
いつも後輩エンジニアたちの力になろうと真摯に向き合ってくださるデヨンさん!改めて感謝申し上げます!