Sudoku solvers are near and dear to my heart.
They’re my go to problem when learning a new programming language because they’re just complex enough to exercise a whole bunch of different language features.
I built this when I wanted to learn Swift and dip my toe into machine learning: https://twitter.com/braddwyer/status/910030265006923776?s=21