Just wanted to drop some nodes about the current puzzle.
The problem is not hard at all, but I think the current formation is not very elegant.
First, the points. I find it strange that they need to be hard coded into the game. I think it would be nicer if they were part of the input. Asking the coder to write them into the code has no real benefit. Also, it would make an implementation more flexible because you can vary the points.
Second I think it would be better if the list of available letter would be in the input before the list of dictionary words. If you had the letters before going through the list, you could have an implementation where you wouldn’t need to store the dictionary words in memory, and process them as you read. This would be both faster and more sane.