알고리즘은 주어진 문제를 빠르게 해결할 수 있는 컴퓨터를 활용한 문제해결기법이다. 어떤 문제가 주어졌을 때,제안한 알고리즘이 얼마나 빠르게 작동하는가?이론적으로 해당 문제는 알고리즘으로 어디까지 최적화가 가능할까?지금 내가 생각한 알고리즘이 과연 최선일까?의 질문들이 나올 수 밖에 없다. P, NP, NP-hard, NP-complete와 같은 용어들은 해당 문제가 얼마나 어려운지에 대한 분류를 제시해서 알고리즘 최적화의 방향을 알려준다. 결정 문제P와 NP는 기본적으로 결정 문제라는 분류의 컴퓨팅 문제를 대상으로 하는 분류 체계이다. 결정 문제는 YES/NO로 답이 정해진 경우로 다음과 같은 예시가 있다:주어진 숫자열이 정렬되어 있는가?그래프에서 주어진 path가 모든 점들을 지나는 최단 경로인가?어떤..