Problem Solving using Data structures and Algorithms