Implemented using 6 different algorithms: Brute Force (iterative and recursive), Backtracking (iterative and recursive), Memoization and Tabulation for the Partition Problem + time analysis