I have a better algorithm/implementation for this problem [greedy_methods/optimal_merge_pattern.py](https://github.com/shivamshrey/Python/blob/master/greedy_methods/optimal_merge_pattern.py).