# My One-Year LeetCode Streak: How I Solved a Problem Every Day

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?**

1. My work hours were from 10 AM to 7 PM, and I also had other side projects to work on.
    
2. 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.
    
3. 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

1. **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.
    
2. **Medium Problems:** I used to struggle with these problems, but now I can solve them with some effort.
    
3. **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.
    
4. **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.
    
5. **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.
    
6. **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.

1. **If you're preparing for interviews,** a DSA sheet is a great choice.
    
2. **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.
    
3. **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.
    
4. **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.
