I am new at algorithms and trying to explore it and learning new concepts like divide and conquer , dynamic programming , greedy programming etc.