Last October, I took on the challenge of solving a LeetCode problem every day for a month and announced it on Twitter. After completing the first month, I decided to extend the challenge for another month. What began as a 30-day commitment eventually turned into a full year of daily problem-solving. In this blog, I'll share why I started this challenge, the strategies I used to stay consistent, and what kept me motivated throughout the journey.
Why I Started This Challenge?
I always wanted to excel in problem-solving and data structures and algorithms (DSA). However, after securing an internship, I completely stopped practicing DSA problem solving. I wanted to get back into problem-solving, but I struggled with consistency. Some days, I would solve a few problems, but then I wouldn’t touch them the next day, and this lack of routine hindered my progress.
Additionally, I believed that consistent problem-solving would help me think more critically at work, improve my problem-solving speed, and enhance my coding efficiency. So, I decided to take on a 30-day challenge of solving one LeetCode problem every day, while posting daily updates on Twitter to keep myself accountable.
Strategy
On weekdays, I dedicated about 30 minutes each day to solving a problem. If I couldn’t come up with a solution within that time, I would refer to the solution.
Why only 30 minutes?
My work hours were from 10 AM to 7 PM, and I also had other side projects to work on.
I wanted to stay engaged. Spending too much time on a problem could lead to burnout and loss of interest, which would make me give up entirely.
Keeping the streak alive motivated me to stay consistent with problem-solving.
On weekends, I had more time to focus on problem-solving. I also started participating in LeetCode’s weekly coding contests. These contests helped me test my skills under pressure.
What Kept Me Motivated?
Initially, my daily Twitter updates kept me accountable during the first 30 days. After a month, I decided to extend the challenge to 60 days. When I reached 60 days, I stopped posting updates on Twitter, but by then, solving problems daily had become a habit.
The streak itself became a powerful motivator. It felt almost impossible to let a day pass without solving a problem. Even on days when I didn’t have access to my laptop, I used my phone to copy and paste code just to maintain the streak. I probably did this for around 20 problems over the year, and I think that’s fine—it was more important to me to keep going than to give up.
Results After One Year of Consistency
Easy Problems: Over time, I became faster at solving easy problems. I also started exploring different approaches and focusing on finding the most optimal solutions.
Medium Problems: I used to struggle with these problems, but now I can solve them with some effort.
Hard Problems: Initially, I wouldn’t even attempt hard problems. Now, I at least try to come up with a solution. While I may not always pass all test cases, I am getting better at approaching them.
Thinking and Problem-Solving: My ability to think in different directions while solving problems has improved. I’m now more comfortable using data structures like stacks, queues, priority queues, etc to optimize solutions.
Mastering Difficult Topics: I used to struggle with topics like depth-first search (DFS), backtracking, dynamic programming, and graph problems. Now, I can write DFS and backtracking code within minutes, and I’m much more confident in solving dynamic programming problems.
LeetCode Contests: I didn’t participate in any LeetCode contests for four to five months during the challenge. When I started again, I noticed an improvement—I could solve two to three questions per contest, compared to just one before.
Why a Daily LeetCode Challenge and Not a DSA Sheet?
It really depends on your goal with DSA.
If you're preparing for interviews, a DSA sheet is a great choice.
If your goal is to get better at problem-solving, improve your critical thinking, or build a habit of daily practice, then a daily LeetCode challenge is a better option.
If you want to stay in touch with DSA, regularly solving a LeetCode problem ensures you're consistently practicing even if it's just for 30 minutes a day.
If you're interested in competitive programming, participating in LeetCode’s weekly and bi-weekly contests can help you practice solving problems under time pressure and measure your performance against other competitive coders.
My reasons are 2 and 3.
Conclusion
This challenge has significantly improved my DSA skills and my overall problem-solving ability. Not only has it made me faster and more efficient at solving problems, but it’s also changed how I approach complex coding challenges. It’s been an incredibly rewarding experience, and I’m excited to keep pushing myself further.