Hello, I am an undergraduate computer science. I finished a course about complexity classes, algorithms and reductions. I am looking for information/literature on how to use this theory to apply it to any problem. I don't have a lot of knowledge about it, outside of the theoretical definitions I learned like the classes P and NP.
To illustrate, I give an example of a problem: *"What is the minimum amount of digits needed in a sudoku grid to ensure that there exists a unique solution?"*
Given a problem like this, I would like to be able to:
\- Classify the difficulty of the problem in some way
\- Determine whether a solution exists, and if so, if it can be found
\- Apply generic methods, heuristics, reductions... to find a solution
In general, I'm wondering how many methods one needs to know to tackle most problems like this. I'm looking for literature from a mathematical or computational point of view.