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.