Implemented A* and greedy algorithms
Discovered a bug in handling duplicates but left it for Purpose :@