본문 바로가기

개발/알고리즘

분할 정복이란(Divide & Conquer)

분할 정복이란?

분할 정복은 문제를 2개 또는 그 이상의 작은 부분 문제로 나눈 다음 푸는 것(분할)으로

푼 다음에는 다시 합쳐서(정복) 정답을 구하는 알고리즘이다. 말 그대로 분할하고 정복하여 정답을 도출하는 알고리즘이다.

분할 정복 대표 알고리즘

DP와 차이점

다이나믹 프로그래밍도 문제를 작은 부분으로 나눈 다음 합쳐서 정답을 도출하는 알고리즘이다. 

그렇다면 분할 정복 알고리즘과 어떤 차이점이 있을까? 

바로 "작은 문제가 중복이 되는지의 여부에 대한 차이"이다.

다이나믹 프로그래밍은 작은 문제가 중복 되기때문에 이 부분을 기록해서 메모이제이션을 이용하여 중복을 제거한다.

분할 정복은 작은 문제가 중복 되지 않기 때문에 이 부분을 기록하지 않고 한번씩 도출하여 문제를 풀어 나간다.