언제 백트래킹을...?
: 모든 원소를 탐색하면서, 조합으로 즉 특정 경우에 수를
조건으로 체크할 경우에 백트래킹을 사용하자.
- 자신의 상태값을 유지한 후, 다른 인덱스의 상태값 변경 처리 완료 후,
자신의 상태값을 원상태로 복귀해야 할때
공식
1) 종료 조건을 만듬
2) 상태값 on -> 재귀 -> 상태값 false
void backTr( v)
{
// 함수 종료문.
if(조건)
return;
v[i] = true;
backTr(v);
v[i] = false;
}
관련 문제
- 프로그래머스 - 카카오 : 불량 사용자
- 삼성 : 연구소
- 프로그래머스 - 여행경로
반드시 필요한 것
- dfs로 재귀 돌리므로
1) 종료 조건이 필요하다.
2) 재귀함수 호출 앞뒤에서 불변수 true - false 처리해서
다음 인덱스 동작할때 문제 없게 해야 한다.
-> 인덱스로 탐색할 컨테이너를 만들고, 찾아야 한다.