본문 바로가기

programming study/항해99 커리큘럼

[항해99 1기] [Chapter2-2] 자료구조, 알고리즘 (12) (2021.3.14)

01. 분할 정복

  • Divide and conquer
  • 원래 문제를 성질이 똑같은 여러 개의 부분 문제로 나누어 원래 문제의 해를 구하는 방식
  • 아래와 같은 절차를 거친다

Divide

2개 이상의 작은 문제들로 쪼갠다.

Conquer

나누어진 작은 문제들을 푼다.

Combine

나누어 해결한 문제들을 합친다.

02. 백트래킹

  • Backtracking
  • 해답을 찾는 과정에서 해답이 될 가능성이 있는지를 확인한다.
    • 해답이 될 가능성이 적으면 부모 노드로 돌아온다.
    • 특정한 조건을 만족하는 경우만 살펴 본다.
  • 단순 깊이 우선 탐색보다 효율이 증가
    • 깊이 우선 탐색은 가능한 모든 경로를 탐색