Quality target: ~150 problems done properly beats 600 done frantically. 'Properly' means:
1. Cover patterns, not count — two pointers, sliding window, BFS/DFS, binary search variants, heaps, dynamic programming basics, graphs. A curated list (NeetCode 150 / Blind 75) exists precisely for this.
2. The redo rule — a problem isn't 'done' when it passes; it's done when you can solve it cold a week later. Failed the redo? It goes back in the queue. This one habit is the difference between recognizing patterns and having watched solutions.
3. Simulate real conditions — timer on, talking out loud, no autocomplete, before every interview cycle.
Signals you're ready: you can classify a new medium into its pattern within 5 minutes and produce working code in ~25. If mediums regularly take an hour, it's not more problems you need — it's redoing the ones you 'finished'.