How to improve your skills in competitive coding?

I will take less time and give some good points to increase your score in competitive coding.

Here, comes some rules-

1)Never lose hope and try practicing coding daily.
2)If you are solving a particular question-For the first two hours, read about the concept-specific topic and then practice it for the next two hours and then switch to the competition question.
3)First, you should solve questions from the sites which give you medium level questions-like Hackerrank, geekforgeek, etc., and then switch to the websites like Codechef.

To improve your coding skills, solve as many problems as you can solve in 15 minutes or less. Find problems you already solve most of the time in around 15 minutes, like TopCoder's Div2 Medium or Codeforces Div2 1000, and solve as many of them as you can.



It might seem easy and useless work to you. But it helps to build your speed. Compare it to running! How many miles can you run in 15 minutes? How much will it improve after you practice running for 15 minutes 4 days a week for three months? The same goes for programming too! After you solve 100 easy problems in 15 minutes each, you can solve more complex problems in that timeframe, maybe the ones that used to take 25 minutes to solve.



You should also invest some time-solving problems that don't need any unique algorithms and are just a matter of implementing them, like simulation or brute-force problems. These problems should take considerably more time to implement, maybe in the 45-75 minutes range. (I am just making up these numbers, they are by no means the ultimate numbers you can choose)

To gather more knowledge, you should solve A LOT of problems at a level you cannot solve now, and don't spend more than 10 minutes thinking about them. Then, you should read the editorial or judge solutions and see how the problem is solved, and you MUST implement them.



When I was blue in TopCoder, I was unable to solve most Div2-Hard problems. But the problem was not my problem-solving skills. The reason was I was not familiar with most algorithms, like Maximum Bipartite Matching, Minimum Spanning Trees, Dynamic Programming using bitmasks, and so on. Spending 2 hours trying to solve such problems was not a good idea for me. So what did I do? I translated as many of them as I could with the help of an editorial.

Another great source of problems is regional contests. Find issues that many teams have solved, but you cannot find the solution in 10 minutes. Then read the answer, and implement it. Those problems are usually elementary if you are familiar with the algorithm needed. If you cannot solve it quickly, you probably don't know the algorithm or have only solved very few problems using it. NEERC subregionals, NWERC, and SWERC, are my favorite contests.



After practicing as I described for a few months, you will see that you can solve more problems which everyone solves, and solve them quite faster than before. After a while, you can feel that you are familiar with most solutions and ideas. By regular, I mean you have solved and implemented at least 7-8 such problems. After a while, you can spend more time thinking before looking at the solution because you are more likely to solve the problem.
You have to practice and practice, and soon you will be an excellent competitive coder.

Enjoyed this article? Stay informed by joining our newsletter!

Comments

You must be logged in to post a comment.

About Author