August is like the Sunday of Summer 🌞
Its hard to believe that 2022 is less 4 months away! Time really flies. But what matters is that how we make up the most of it. The eighth month of the year was a occupied one for me. As we are already in the middle of the 9th month, I feel like sharing whatever I learnt in the Sunday of Summer.
After a lot of mentalation, I came to a conclusion that there were times when I worked hard, and there were times which I wasted too (should not have done that though), but one task that I am happy of completing was- solving at least one problem everyday. Be it either an already solved problem, or a never seen one.
After doing this for 31 days, here I decide to bring the topics which I thought were involved in solving those problems, the difficulties I faced, and how a beginner can overcome it, and what was the overall learning from the one month long coding period.
Week-1 was more about strings, arrays, substring, and subarrays which included mathematical intuition. It also included some classic questions like TwoSum, N-aryTreeLevelOrderTraversal, and PathSum.
As it was the first week, there were not a lot of tough questions. Mostly they were level easy and could be solved with a little hint. Week-1 tried to provide the basics of problem-solving with classic questions.
Week-2 can be said to be a progressed version of Week-1. The questions were easy to medium level, and mostly involved concepts based on on Matrix and double-arrays. Some of the classic questions involved were RankofMatrix, and GroupAnagrams.
Although I had to see the hint, but most of them can be solved if one has a great understanding of double-arrays.
Week-3 had mostly Binary Trees and some Sudoku Problems.
As far as I conclude, Sudoku problems have a similar approach like a double-array problem. Binary Trees are non-linear Data Structures, similar to a tree data structure whose elements have at most 2 children. Tree problems were mostly basic, including traversal, counting total nodes, and I though that they are known to everyone who has learnt tree data structures, or have started to learn them.
Week-4 had mostly Mathematical and Logical questions. It even involved questions based on the Greedy Algorithm, most of which could be easily found on GeeksforGeeks. The mathematical questions were interesting. They seemed impossible at first, but after seeing some hints (even solutions in some cases :'), I was left amazed. The toughest of these can be solved using simple Mathematics which we learnt in standard 11th and 12th.
I believe that this is yet another reason why Computer Science and Mathematics go hand in hand. :hand_shake:
Week-5 was a shorter one, lasting for 3 days only (29th Aug- 31st Aug).
It contained all questions based on arrays.
My conclusions from these 5 weeks are that many problems can be solved using the basic data types in any programming language. (I code in Python)
There were A LOT of times I got stuck, but having a look on the hints helped me learn the approach. Therefore, I will say that it's not bad to look at solutions, just try not to make it a habit.
Most important learning- investing time everyday in an activity. This helps in bringing consistency.
Also, there are a lot of topics which are not yet covered, so it depends on an individual on which problems they want to invest their time in. I am a beginner and so I wanted to give more time on the fundamental data types. You can always modify it the way you want.
I have created a list of problems along with some proposed solutions. You can find them here.
Feel free to reach out to me for discussions or suggestions. I'll be more than happy.
Also, let's get ready for CodeLand 2021 🍀 🔥
Happy learning :)