다항 시간에 풀 수 있는가?
현재까지 배운 알고리즘의 시간 복잡도는 다음과 같다

그러나 exp하게 증가하는 문제가 있다: Search Problem
algorithm C, instance I, solution S
즉 정답을 확인하는 데에 다항 시간이 걸리는 문제들이다 S를 찾는 데에는 다항시간이 걸릴수도 안걸릴수도 있음
<aside> 💡 Class NP: (Non-deterministic Polynomial) Class of ALL Search problems
Class P: (Deterministic Polynomial) Class of all search problems that can be solved in Polynomial time
</aside>
예시

대부분의 NP 문제는 동치이다

A problem is NP-Hard if ALL search problems(NP) reduce to it
A search problem is NP-complete if all other search problems reduce to it(NP-hard), and itself is NP class (NP)