১৭ সপ্তাহের পড়ার পরিকল্পনা — ধারণা থেকে নিজে সমাধান¶
দিনে প্রায় ২–৩ ঘণ্টা ধরে পরিকল্পনাটি সাজানো। Week 1 মানে আপনি যেদিন শুরু করবেন সেই সপ্তাহ; এটি কোনো নির্দিষ্ট ক্যালেন্ডারের deadline নয়। আগে শেখা বিষয় ছোট একটি problem দিয়ে যাচাই করে এগিয়ে যান। সময় বেশি লাগলে সপ্তাহটি আবার করুন।
অধ্যায়ের সম্পর্ক · ১০০টি বাছাই অনুশীলন · বই ও উৎস
প্রতিদিনের কাজ¶
- ৩০–৪০ মিনিট ধারণা ও ছবি: ছোট input নিন। প্রতিটি ধাপের array, pointer, stack বা DP table খাতায় লিখুন।
- ৬০–৯০ মিনিট problem: আগে নিজে চেষ্টা করুন। ২৫–৩০ মিনিট আটকে থাকলে intuition দেখুন, তারপর নোট বন্ধ করে code লিখুন।
- ২০–৩০ মিনিট যাচাই: খালি input, একটি item, duplicate ও boundary case চেষ্টা করুন। কোন শর্তে algorithm কাজ করে লিখুন।
- শেষ ১০ মিনিট: ভুলটি ও পরের revision-এর দিন লিখুন। সপ্তাহের একদিন পুরোনো ২–৩টি problem আবার করুন।
নিচে বিষয় থেকে chapter, বাংলা নোট থেকে worked solution, আর Official problem থেকে judge খুলবে। এটি প্রতি সপ্তাহের শুরু করার problem; আরও অনুশীলন সংশ্লিষ্ট অধ্যায়ের তালিকায় আছে।
সপ্তাহভিত্তিক পথ¶
| সপ্তাহ | বিষয় | প্রথম বাংলা নোট | Official problem | সপ্তাহ শেষে নিজেকে জিজ্ঞেস করুন |
|---|---|---|---|---|
| ১ | Python basics, array | Reverse String | LeetCode 344 | Index ও value আলাদা করতে পারি? |
| ২ | Binary search ও two pointers | Basic Binary Search | LeetCode 704 | কোন অর্ধেক বাদ দিচ্ছি, কেন? |
| ৩ | Hashing, prefix sum ও window | Two Sum | LeetCode 1 | আগের কোন তথ্য রাখলে আবার খুঁজতে হয় না? |
| ৪ | Linked list, stack ও queue | Reverse Linked List | LeetCode 206 | Pointer বদলানোর আগে পরের node রেখেছি? |
| ৫ | Heap ও monotonic stack | Daily Temperatures | LeetCode 739 | বাদ দেওয়া item আর লাগবে না কেন? |
| ৬ | Recursion ও backtracking | Subsets | LeetCode 78 | ফিরে এসে state আগের অবস্থায় আনছি? |
| ৭ | Tree traversal ও BST | Validate BST | LeetCode 98 | সব ancestor-এর সীমা মানছি? |
| ৮ | Tree-র অনুশীলন | Lowest Common Ancestor | LeetCode 236 | Subtree থেকে কী ফেরত চাই? |
| ৯ | BFS ও DFS | Number of Islands | LeetCode 200 | কখন visited করছি? একই cell দুবার গুনছি? |
| ১০ | Topological sort, DSU, shortest path | Course Schedule | LeetCode 207 | Dependency-তে cycle থাকলে কী হবে? |
| ১১ | DP state ও transition | Coin Change | LeetCode 322 | dp[i] এক বাক্যে কী বোঝায়? |
| ১২ | DP-র কৌশল | Longest Common Subsequence | LeetCode 1143 | ছোট state আগে হিসাব করা হয়েছে? |
| ১৩ | Subset ও partition | Partition Equal Subset Sum | LeetCode 416 | একই item দুবার ব্যবহার করছি? |
| ১৪ | মিশ্র problem | Merge Intervals | LeetCode 56 | Sort করার পরে কোন invariant থাকে? |
| ১৫ | Data structure বাছাই | LRU Cache | LeetCode 146 | Lookup ও order—দুটোর জন্য কী রাখব? |
| ১৬ | Window ও graph revision | Minimum Window Substring | LeetCode 76 | Window ছোট করলে কখন শর্ত ভাঙে? |
| ১৭ | Mock ও শেষ revision | Merge K Sorted Lists | LeetCode 23 | যুক্তি, code ও test বোঝাতে পারি? |
অন্য platform-এ চর্চা¶
| ধারণা | বাংলা নোট | Official problem |
|---|---|---|
| Prefix sum | Static Range Sum | CSES 1646 |
| Parity | Watermelon | Codeforces 4A |
| 1D DP | Dice Combinations | CSES 1633 |
| DAG-এ DP | Longest Path | AtCoder DP G |
অগ্রগতি মাপুন¶
| অবস্থা | মানে |
|---|---|
| পড়েছি | নোট অনুসরণ করে বুঝেছি |
| চেষ্টা করেছি | নিজে code লিখেছি, কোথায় আটকে গেছি জানি |
| সমাধান করেছি | Sample ও নিজের edge case পাস করেছে |
| আবার পেরেছি | কয়েক দিন পরে নোট ছাড়া যুক্তি ও code লিখেছি |
Problem-এর সংখ্যা সহায়ক; আসল মাপকাঠি হলো নতুন input-এ যুক্তি ঠিক থাকে কি না। প্রতি চার সপ্তাহে একটি পুরোনো ও একটি নতুন problem সময় ধরে করুন। দুর্বল pattern-এর জন্য পরের সপ্তাহে সময় রাখুন। Mock-এ এই ক্রম বলুন: শর্ত পরিষ্কার করা → সহজ সমাধান → খরচ → উন্নতি → code → test।
সময় কম হলে¶
আগে array, hashing, binary search, window, traversal, মূল DP ও revision করুন। Segment/Fenwick tree, advanced number theory, geometry ও গভীর competitive programming পরে রাখা যায়। বাইরের বড় topic map প্রয়োজনমতো reference হিসেবে ব্যবহার করুন।
প্রস্তুতির গতি আপনার পূর্বজ্ঞান, নিয়মিত অনুশীলন ও ভুল সংশোধনের উপর নির্ভর করবে।