### NP-completeness

A problem is said to be NP-hard if everything in NP can be transformed in polynomial time into it, and a problem is NP-complete if it is both in NP and NP-hard. 📖 NP-completeness - Wikipedia

A problem is said to be NP-hard if everything in NP can be transformed in polynomial time into it, and a problem is NP-complete if it is both in NP and NP-hard. 📖 NP-completeness - Wikipedia

NP is the set of decision problems for which the problem instances, where the answer is “yes”, have proofs verifiable in polynomial time. There exists a verifier which can checks a solution is correct in polynomial time.