Which approach is better for improving in competitive programming?
-
Solve problems rating-wise, get stuck, identify the topic, and then learn it.
-
Learn algorithms first, then solve problems topic-wise.
If the second approach is better, what key topics should I master to reach Expert? Note : My current rank is Pupil.