Problem solving is at the core of what Software Engineers do for a living. There may be an array of job titles specifying different types of engineers that deal with software, (e.g, front-end engineer, back-end engineer, dev ops, data-engineer) but ultimately they are tasked with the challenge of solving problems and doing so on a daily basis.
That being said, all problems are not created equal, but they do employ similar strategies for solving them such as accurately evaluating and understanding the problem statement, identifying the provided information, correctly identifying missing information, and crafting solutions that tackle the problem piece by piece in an efficient manner.
Solving algorithm problems can help us improve our general problem solving capabilities and enhance our knowledge of a given programming language. For this series, I will analyze various algorithmic problems from sites like Hacker Rank.