Last year I participated in the Devsu Codejam 2019 contest, which is about solving programming problems. The first place? A car 🚗.
The contest was for all developers from Ecuador, this is the first time I have heard about this type of contests being organized in Ecuador, so it caught my attention (well, the car a little too).
First, a little of background about myself. I have participated in some contests about problem solving in the past: three times in the IEEEXtreme programming (before the university kicked me out), and a couple on Hackerrank, so I'm kind of familiar with them. I stopped participating in these kind of contests for a while, so this was a good opportunity to get back into the game.
The contest was split into two categories (students and professionals), and it had two rounds. The first round was online (November 23th), and was around ~4 hours with 16 problems. The first 50 of each category from the first round could go the second round held in Quito, the capital of Ecuador (November 30th), this phase was around 3 hours with 10 problems.
I participated in the professionals category. And got the 10th place in the first round, and the 7th place in the final round. What? Did you think I won the car? Sorry friend, I didn't mean to disappoint you.
Anyway, I arrived at Quito the day before the contest, met some friends and got drunk, and didn't get much sleep. And the day of the contest my allergies didn't play nice... so I had a running nose during the whole contest. And yes, those are silly excuses, but a 7th place isn't bad 😃 (and they gave some prizes to the first 10 of each category).
That was my experience, now let's get back to the problems. I uploaded my solutions from the first round here https://github.com/stsewd/devsucodejam-2019 and from the final round here https://github.com/stsewd/devsucodejam-2019-final.
I don't have access to the platform with all the test cases, so I can't guarantee all the solutions are correct, but I believe most of them are :).
First I was planning in writting the explanation for all solutions, but then I realized the posts would be too long to read and write... So I'm just linking to my solutions instead, if you have any questions about one of them let me know, maybe I'll do another post explaining those solutions.
Some final words, I encourage you to keep solving problems in platforms like hackerrank and hackerearth. You'll realize how using a different algorithm or data structure will make your programs faster, how some small optimizations can make a big difference when handling large amounts of data, start thinking outside the box when solving real-life problems, and see math as your best friend when solving problems.
And there is another plus, when solving problems, at the same time you'll be building your portfolio, and showing your real skills to the world.
If you want to master a programming language, solving problems is a fun way to do it!